get_upper_tri_list <- function(cormat){
    
  r <- cormat[1]
  n <- cormat[2]
  p <- cormat[3]
  
  r[lower.tri(r)] <- NA
  p[lower.tri(p)] <- NA
  
  cormat_u <- list(r, n, p)
    
    return(cormat_u)
}

get_upper_tri <- function(cormat){
    cormat[lower.tri(cormat)]<- NA
    return(cormat)
  }

Methods

Abstract. In a preregistered study, we test the relationship between science curiosity and motivated reasoning, extending work by Kahan et al. (2017) in which high science curiosity was associated with less selective exposure to politicized science news stories. N=541 participants completed a motivated reasoning task in which they viewed graphs of NASA climate change data and predicted future trends in those data before completing a validated science curiosity inventory We predicted that participants higher in science curiosity would engage in less motivated reasoning (measured through selective endpoint bias) than those lower in science curiosity, controlling for cognitive ability and political ideology.

Data collection

This study was run on Amazon Mechanical Turk via CloudResearch and utilized CAIDe lab’s Cohort 4. It was conducted in two parts: cognitive ability and demographics (including political ideology) were collected in a baseline survey, and participants completed the motivated reasoning items and science curiosity scale in a second survey. Our target sample size was N=750, but we didn’t received enough responses.

Baseline: August 16-17, 2021

  1. SNS
  2. NFC
  3. Climate risk perception
  4. NSE
  5. Adaptive ONS (and confidence)
  6. RPM (and confidence)
  7. Vocab (and confidence)
  8. Verbal logic (analogies; and confidence)
  9. Political knowledge (and confidence)
  10. AOT
  11. COVID-19 vaccine screener
  12. Demographics (ANES political ideology)

Current Study: July 13-26, 2022

  1. Motivated reasoning task (slope direction)
  • Practice item/attention check (0)
  • 4 ambiguous political items
    • 2 conservative: arctic sea ice (-) and global temperature index (+)
    • 2 liberal: ozone hole (-) and US air quality (+)
    • All participants saw one of these four items, randomly-selected, as their first item after the practice item
  • 2 unambiguous political items
    • Both conservative: ice sheets (-) and CO2 (+)
  • 1 ambiguous nonpolitical item
    • Bacteria population density (-)
  • 1 unambiguous nonpolitical item
    • Earthquake magnitude (0)
  1. Modified version of Kahan et al. (2017) science curiosity scale
  2. Data quality

Preregistration

A preregistration was posted on OSF. Below is a summary of key points (using original language found in the preregistration).

Variables

  • Item congruence
  • Item-level endpoint bias
  • Ideologically-motivated response inconsistency (IMRI)
  • Science curiosity
  • Cognitive ability
  • Political ideology
  • Climate change risk perception
  • Demographics

Hypotheses

  • H1. Trait science curiosity will moderate the relationship between item congruence and item-level endpoint bias. Higher (vs. lower) trait science curiosity will be associated with less endpoint bias on congruent (vs. incongruent) items.
  • H2. There will be a main effect of science curiosity on ideologically-motivated response inconsistency. Participants higher (vs. lower) in science curiosity will be less likely to demonstrate ideologically-motivated response inconsistencies between congruent and incongruent items.

Analysis plan

  • H1. We will use a multilevel modeling approach with random intercepts and slopes, wherein item-level performance values are nested within participants. The outcome variable in the model will be performance scores on all items for all participants (resulting in 3N observations). The predictor variables will be item congruence and science curiosity scores. Cognitive ability and political ideology will be included as covariates.
    • Manipulation check. With this model, we will also test whether there is a significant relationship between item congruence and item-level endpoint bias, such that participants exhibit greater endpoint bias on congruent items (vs. incongruent items).
  • H2. We will test a logistical regression model wherein IMRI values (0 or 1) are predicted by science curiosity scores, controlling for cognitive ability and political ideology.
  • Data exclusion. We will exclude participant data for any of the following reasons:
    • a participant’s IP address is outside of the US,
    • a participant responds to a self-report item suggesting exclusion (e.g., reports random responding or significant distraction during survey completion),
    • a participant exhibits poor performance (e.g., z < -3) on control/filler graph items,
    • a participant fails an attention check item,
    • a participant submits a nonsense response on an open-ended item,
    • and/or a participant exhibits a survey completion time more extreme than +/-3 SD of the mean.
  • Exploratory analyses.
    • We plan to explore the predictive power of participants’ climate change risk perceptions (a more proximal measure) relative to their reported political ideology. Similarly, we may also explore numeracy as a covariate instead of or alongside their performance on the RPM task.
    • The coding scheme for the IMRI variable has not yet been tested with this paradigm, so H2 and its analyses are ultimately exploratory. With this preliminary study, we may develop a better approach for testing H2, which we could then implement in future studies.
    • We may utilize participants’ 10-year predictions in an exploratory analysis. Specifically, we may test the utility of examining the difference scores or slopes created by participants’ 10- and 20-year predictions for each item in measuring endpoint bias.

Materials

Coding motivated reasoning items

Conservative-congruent item prompt.

Response options.

Visual aid (?) for recoding scheme.

In this document, for the sake of simplicity, I’ll refer to the recoded scores as “endpoint bias scores.” However, as we’ve previously discussed (and as we’ll see later in this doc), our findings do not necessarily support the idea that the mechanism behind polarization on these items is due to endpoint bias.

Data Prepping and Cleaning

Outliers and exclusions

Final df is excluding:

  • Duplicates
  • Unfinished
  • Reported cheating
  • Reported bad response
  • Unapproved
  • Did not consent
  • Was not in both dfs (b and s1)
  • Outliers:
    • Duration (1)
    • Science Curiosity (0) XXX i think fix i think wrong
    • Raven’s Progressive Matrices (2)

Attention check. 381 people failed the attention check, which is honestly pretty impressive! Was clearly not a good attention check. I don’t think this is a red flag for data quality, though.

Scoring

Order effects

Descriptives

Demographics

N\(_{total}\) = 541

  • Political ideology: 41.77% conservative, 48.98% liberal, 9.24% moderate
    • N\(_{con}\) = 226, N\(_{lib}\) = 265, N\(_{mod}\) = 50
  • Age: Mean\(_{age}\) = 42.94 (range: 19-78)
  • Gender: 46.95% women, 51.94% men, 0.37% non-binary folks, 0.74% preferred not to answer
  • Race: 83.55% White, 5.36% Black, 2.77% Hispanic, 6.47% Asian

Correlations

corr 1

dfp_corr2 <- dfd1_lc %>% 
  select(conservatism_f, sc_scored, rav_scored, arctic20, temp20, ozone20, airqual20, co220, icesheets20, diatho20, quake20) %>% 
  mutate(Con = conservatism_f,
         SciCur = sc_scored,
         RPM = rav_scored,
         ConArctic = arctic20,
         ConTemp = temp20,
         Ozone = ozone20,
         AirQual = airqual20,
         ConFillCO2 = co220,
         ConFillIce = icesheets20,
         FillBacteria = diatho20,
         FillQuake = quake20) %>% 
  select(-contains("20"), -contains("scored"), -contains("_f"))

cor(dfp_corr2) %>% 
  get_upper_tri() %>% 
  melt() %>% 
  ggplot(aes(x = Var1, y = Var2, fill = value)) +
  geom_tile(color = "white") +
  scale_fill_viridis(limits = c(-1,1), discrete=FALSE, option = "A",
                     name="Pearson\nCorrelation") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 25, vjust = 1, 
    size = 13, hjust = 1)) +
  coord_fixed() +
  geom_text(aes(Var1, Var2, label = round(value, 2)), color = "white", size = 3) +
  theme(
    axis.text.y = element_text(size = 13),
    axis.title.x = element_blank(),
    axis.title.y = element_blank(),
  panel.background = element_blank(),
  panel.grid.major = element_blank()) +
  labs(caption = "Conservatism (Con): Extremely liberal (1) to Extremely conservative (7).")

cor 2

desc table sc rpm

desc tab by ideo

desc_mr_con <- desc_mr_var_names %>% 
  filter(Con == 1) %>% 
  select(SciCuriosity, RPM, ConArctic, ConTemp, LibOzone, LibAir, ConFillIce, FillBacteria, FillQuake) %>%
  psych::describe()%>% 
  mutate(C_Min = min,
         C_Max = max,
         M_c = round(mean, 2),
         SD_c = round(sd, 2),
         C_Median = median,
         Skew_c = round(skew, 2)) %>% 
  as.data.frame() %>% 
  select(M_c, SD_c, Skew_c)

desc_mr_lib <- desc_mr_var_names %>% 
  filter(Con == -1) %>% 
  select(SciCuriosity, RPM, ConArctic, ConTemp, LibOzone, LibAir, ConFillIce, FillBacteria, FillQuake) %>%
  psych::describe()%>% 
  mutate(L_Min = min,
         L_Max = max,
         M_l = round(mean, 2),
         SD_l = round(sd, 2),
         L_Median = median,
         Skew_l = round(skew, 2)) %>% 
  as.data.frame() %>% 
  select(M_l, SD_l, Skew_l)

desc_mr <- cbind(desc_mr_con, desc_mr_lib) %>% 
  select(contains("_c"), contains("_l")) %>% 
  kable() %>% 
  add_header_above(c(" " = 1, "Conservative" = 3, "Liberal" = 3))

sc rpm again

Conservative
Liberal
Mean SE Min Max Mean SE Min Max
SciCuriosity 24.12 0.38 9 43 25.25 0.35 9 44
RPM 5.55 0.10 1 10 5.71 0.10 1 10

mr items

Conservative
Liberal
Mean SE Min Max Mean SE Min Max
ConArctic -1.07 0.09 -3 3 -1.73 0.07 -3 3
ConTemp -1.37 0.08 -3 3 -1.97 0.06 -3 2
LibOzone -0.32 0.09 -3 3 -0.21 0.09 -3 3
LibAir -0.85 0.10 -3 3 -0.81 0.10 -3 3
ConFillIce -1.83 0.09 -3 3 -2.33 0.06 -3 3
FillBacteria -0.16 0.08 -3 3 -0.35 0.08 -3 3
FillQuake 0.29 0.03 0 1 0.33 0.03 0 1

“endpoint by ideology”

3 way int means

Conservative
Liberal
SciCur RPM Con1_M Con1_SE Con2_M Con2_SE Lib1_M Lib1_SE Lib2_M Lib2_SE
Con High High -1.05 0.18 -1.38 0.17 -0.14 0.16 -0.92 0.19
Con High Low -1.00 0.22 -1.31 0.19 -0.33 0.24 -0.98 0.24
Con Low High -1.05 0.15 -1.23 0.14 -0.52 0.14 -0.80 0.18
Con Low Low -1.19 0.18 -1.58 0.16 -0.28 0.22 -0.68 0.23
Lib High High -1.85 0.11 -2.14 0.09 -0.27 0.14 -0.92 0.17
Lib High Low -1.45 0.20 -2.00 0.10 -0.02 0.20 -0.62 0.24
Lib Low High -1.88 0.12 -2.15 0.10 -0.08 0.21 -0.75 0.20
Lib Low Low -1.71 0.17 -1.53 0.16 -0.40 0.17 -0.87 0.19
Note:
* M = mean, SE = standard error
* Item names: Con1 = arctic sea ice, Con2 = global temperature index, Lib1 = ozone layer hole, Lib2 = US air quality

By item.

Conservative #1: Arctic

arcmod1 <- lm(ConArctic ~ 1, data = dfd2_lc)
summary(arcmod1)
## 
## Call:
## lm(formula = ConArctic ~ 1, data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.5723 -0.5723 -0.5723  0.4277  4.4277 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.42770    0.05952  -23.99   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.319 on 490 degrees of freedom
arcmod2 <- lm(ConArctic ~ rav_scoredz, data = dfd2_lc)
summary(arcmod2)
## 
## Call:
## lm(formula = ConArctic ~ rav_scoredz, data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.8764 -0.6798 -0.4831  0.4513  4.3858 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.42549    0.05940 -23.997   <2e-16 ***
## rav_scoredz -0.10473    0.05993  -1.748   0.0811 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.316 on 489 degrees of freedom
## Multiple R-squared:  0.006207,   Adjusted R-squared:  0.004175 
## F-statistic: 3.054 on 1 and 489 DF,  p-value: 0.08115
anova(arcmod1, arcmod2)
## Analysis of Variance Table
## 
## Model 1: ConArctic ~ 1
## Model 2: ConArctic ~ rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F  Pr(>F)  
## 1    490 852.18                              
## 2    489 846.89  1    5.2899 3.0544 0.08115 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
arcmod3 <- lm(ConArctic ~ sc_scoredz + rav_scoredz, data = dfd2_lc)
summary(arcmod3)
## 
## Call:
## lm(formula = ConArctic ~ sc_scoredz + rav_scoredz, data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.8788 -0.6782 -0.4836  0.4514  4.3839 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.425486   0.059466 -23.972   <2e-16 ***
## sc_scoredz  -0.002092   0.061643  -0.034   0.9729    
## rav_scoredz -0.104508   0.060348  -1.732   0.0839 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.317 on 488 degrees of freedom
## Multiple R-squared:  0.00621,    Adjusted R-squared:  0.002137 
## F-statistic: 1.525 on 2 and 488 DF,  p-value: 0.2187
anova(arcmod1, arcmod3)
## Analysis of Variance Table
## 
## Model 1: ConArctic ~ 1
## Model 2: ConArctic ~ sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1    490 852.18                           
## 2    488 846.89  2    5.2919 1.5247 0.2187
arcmod4 <- lm(ConArctic ~ ArcticCong + sc_scoredz + rav_scoredz, data = dfd2_lc)
summary(arcmod4)
## 
## Call:
## lm(formula = ConArctic ~ ArcticCong + sc_scoredz + rav_scoredz, 
##     data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1985 -0.9416 -0.2329  0.6405  4.5164 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.72874    0.07874 -21.954  < 2e-16 ***
## ArcticCong   0.65778    0.11632   5.655 2.66e-08 ***
## sc_scoredz   0.02956    0.06004   0.492    0.623    
## rav_scoredz -0.09122    0.05857  -1.558    0.120    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.277 on 487 degrees of freedom
## Multiple R-squared:  0.06745,    Adjusted R-squared:  0.0617 
## F-statistic: 11.74 on 3 and 487 DF,  p-value: 1.942e-07
anova(arcmod1, arcmod4)
## Analysis of Variance Table
## 
## Model 1: ConArctic ~ 1
## Model 2: ConArctic ~ ArcticCong + sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F    Pr(>F)    
## 1    490 852.18                                  
## 2    487 794.71  3    57.476 11.741 1.942e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Conservative #2: Temp

tempmod1 <- lm(ConTemp ~ 1, data = dfd2_lc)
summary(tempmod1)
## 
## Call:
## lm(formula = ConTemp ~ 1, data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.3055 -0.3055 -0.3055  0.6945  4.6945 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.69450    0.05126  -33.06   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.136 on 490 degrees of freedom
tempmod2 <- lm(ConTemp ~ rav_scoredz, data = dfd2_lc)
summary(tempmod2)
## 
## Call:
## lm(formula = ConTemp ~ rav_scoredz, data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.5464 -0.4425 -0.2868  0.6613  4.6094 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.69276    0.05119 -33.069   <2e-16 ***
## rav_scoredz -0.08296    0.05164  -1.607    0.109    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.134 on 489 degrees of freedom
## Multiple R-squared:  0.00525,    Adjusted R-squared:  0.003216 
## F-statistic: 2.581 on 1 and 489 DF,  p-value: 0.1088
anova(tempmod1, tempmod2)
## Analysis of Variance Table
## 
## Model 1: ConTemp ~ 1
## Model 2: ConTemp ~ rav_scoredz
##   Res.Df    RSS Df Sum of Sq     F Pr(>F)
## 1    490 632.18                          
## 2    489 628.86  1    3.3192 2.581 0.1088
tempmod3 <- lm(ConTemp ~ sc_scoredz + rav_scoredz, data = dfd2_lc)
summary(tempmod3)
## 
## Call:
## lm(formula = ConTemp ~ sc_scoredz + rav_scoredz, data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.6735 -0.4882 -0.2660  0.6194  4.6819 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.69229    0.05102 -33.172   <2e-16 ***
## sc_scoredz  -0.11015    0.05288  -2.083   0.0378 *  
## rav_scoredz -0.07119    0.05177  -1.375   0.1698    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.13 on 488 degrees of freedom
## Multiple R-squared:  0.01402,    Adjusted R-squared:  0.009974 
## F-statistic: 3.468 on 2 and 488 DF,  p-value: 0.03194
anova(tempmod1, tempmod3)
## Analysis of Variance Table
## 
## Model 1: ConTemp ~ 1
## Model 2: ConTemp ~ sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F  Pr(>F)  
## 1    490 632.18                              
## 2    488 623.32  2    8.8601 3.4683 0.03194 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
tempmod4 <- lm(ConTemp ~ TempCong + sc_scoredz + rav_scoredz, data = dfd2_lc)
summary(tempmod4)
## 
## Call:
## lm(formula = ConTemp ~ TempCong + sc_scoredz + rav_scoredz, data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.9102 -0.7079 -0.0741  0.4027  4.3675 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.95804    0.06746 -29.025  < 2e-16 ***
## TempCong     0.57643    0.09965   5.785  1.3e-08 ***
## sc_scoredz  -0.08241    0.05143  -1.602    0.110    
## rav_scoredz -0.05954    0.05017  -1.187    0.236    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.094 on 487 degrees of freedom
## Multiple R-squared:  0.07741,    Adjusted R-squared:  0.07172 
## F-statistic: 13.62 on 3 and 487 DF,  p-value: 1.517e-08
anova(tempmod3, tempmod4)
## Analysis of Variance Table
## 
## Model 1: ConTemp ~ sc_scoredz + rav_scoredz
## Model 2: ConTemp ~ TempCong + sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F    Pr(>F)    
## 1    488 623.32                                  
## 2    487 583.24  1    40.075 33.462 1.301e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Liberal #1: Ozone

ozmod1 <- lm(LibOzone ~ 1, data = dfd2_lc)
summary(ozmod1)
## 
## Call:
## lm(formula = LibOzone ~ 1, data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.7413 -0.7413 -0.7413  1.2587  3.2587 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.25866    0.06383  -4.052 5.89e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.414 on 490 degrees of freedom
ozmod2 <- lm(LibOzone ~ rav_scoredz, data = dfd2_lc)
summary(ozmod2)
## 
## Call:
## lm(formula = LibOzone ~ rav_scoredz, data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.8974 -0.7688 -0.6401  1.2312  3.3599 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.25721    0.06383  -4.029 6.48e-05 ***
## rav_scoredz -0.06850    0.06439  -1.064    0.288    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.414 on 489 degrees of freedom
## Multiple R-squared:  0.002309,   Adjusted R-squared:  0.0002684 
## F-statistic: 1.132 on 1 and 489 DF,  p-value: 0.288
anova(ozmod1, ozmod2)
## Analysis of Variance Table
## 
## Model 1: LibOzone ~ 1
## Model 2: LibOzone ~ rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1    490 980.15                           
## 2    489 977.89  1    2.2628 1.1315  0.288
ozmod3 <- lm(LibOzone ~ sc_scoredz + rav_scoredz, data = dfd2_lc)
summary(ozmod3)
## 
## Call:
## lm(formula = LibOzone ~ sc_scoredz + rav_scoredz, data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.9220 -0.8104 -0.6018  1.2041  3.4952 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.25761    0.06376  -4.040 6.21e-05 ***
## sc_scoredz   0.09501    0.06610   1.437    0.151    
## rav_scoredz -0.07865    0.06471  -1.215    0.225    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.413 on 488 degrees of freedom
## Multiple R-squared:  0.006514,   Adjusted R-squared:  0.002443 
## F-statistic:   1.6 on 2 and 488 DF,  p-value: 0.203
anova(ozmod1, ozmod3)
## Analysis of Variance Table
## 
## Model 1: LibOzone ~ 1
## Model 2: LibOzone ~ sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1    490 980.15                           
## 2    488 973.77  2     6.385 1.5999  0.203
ozmod4 <- lm(LibOzone ~ OzoneCong + sc_scoredz + rav_scoredz, data = dfd2_lc)
summary(ozmod4)
## 
## Call:
## lm(formula = LibOzone ~ OzoneCong + sc_scoredz + rav_scoredz, 
##     data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.8704 -0.8270 -0.5915  1.1704  3.4375 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.31255    0.09423  -3.317 0.000978 ***
## OzoneCong    0.10193    0.12868   0.792 0.428669    
## sc_scoredz   0.09010    0.06641   1.357 0.175519    
## rav_scoredz -0.08071    0.06479  -1.246 0.213432    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.413 on 487 degrees of freedom
## Multiple R-squared:  0.007793,   Adjusted R-squared:  0.001681 
## F-statistic: 1.275 on 3 and 487 DF,  p-value: 0.2823
anova(ozmod1, ozmod4)
## Analysis of Variance Table
## 
## Model 1: LibOzone ~ 1
## Model 2: LibOzone ~ OzoneCong + sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq     F Pr(>F)
## 1    490 980.15                          
## 2    487 972.51  3    7.6381 1.275 0.2823

Liberal #2: Air Quality

airmod1 <- lm(LibAir ~ 1, data = dfd2_lc)
summary(airmod1)
## 
## Call:
## lm(formula = LibAir ~ 1, data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1752 -1.1752 -0.1752  0.8248  3.8248 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.82485    0.07176  -11.49   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.59 on 490 degrees of freedom
airmod2 <- lm(LibAir ~ rav_scoredz, data = dfd2_lc)
summary(airmod2)
## 
## Call:
## lm(formula = LibAir ~ rav_scoredz, data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.5557 -1.1456 -0.3096  0.9365  4.0185 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.82209    0.07161 -11.480   <2e-16 ***
## rav_scoredz -0.13107    0.07224  -1.814   0.0702 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.586 on 489 degrees of freedom
## Multiple R-squared:  0.006687,   Adjusted R-squared:  0.004656 
## F-statistic: 3.292 on 1 and 489 DF,  p-value: 0.07023
anova(airmod1, airmod2)
## Analysis of Variance Table
## 
## Model 1: LibAir ~ 1
## Model 2: LibAir ~ rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F  Pr(>F)  
## 1    490 1238.9                              
## 2    489 1230.7  1    8.2851 3.2921 0.07023 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
airmod3 <- lm(LibAir ~ sc_scoredz + rav_scoredz, data = dfd2_lc)
summary(airmod3)
## 
## Call:
## lm(formula = LibAir ~ sc_scoredz + rav_scoredz, data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.6877 -1.1600 -0.3303  1.0284  4.1016 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.82161    0.07151 -11.490   <2e-16 ***
## sc_scoredz  -0.11439    0.07413  -1.543    0.123    
## rav_scoredz -0.11884    0.07257  -1.638    0.102    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.584 on 488 degrees of freedom
## Multiple R-squared:  0.01151,    Adjusted R-squared:  0.00746 
## F-statistic: 2.841 on 2 and 488 DF,  p-value: 0.05931
anova(airmod1, airmod3)
## Analysis of Variance Table
## 
## Model 1: LibAir ~ 1
## Model 2: LibAir ~ sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F  Pr(>F)  
## 1    490 1238.9                              
## 2    488 1224.7  2    14.261 2.8413 0.05931 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
airmod4 <- lm(LibAir ~ AirCong + sc_scoredz + rav_scoredz, data = dfd2_lc)
summary(airmod4)
## 
## Call:
## lm(formula = LibAir ~ AirCong + sc_scoredz + rav_scoredz, data = dfd2_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.6581 -1.1592 -0.3372  1.0363  4.0736 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.86049    0.10571  -8.140 3.34e-15 ***
## AirCong      0.07214    0.14436   0.500   0.6175    
## sc_scoredz  -0.11786    0.07451  -1.582   0.1143    
## rav_scoredz -0.12030    0.07268  -1.655   0.0986 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.585 on 487 degrees of freedom
## Multiple R-squared:  0.01202,    Adjusted R-squared:  0.005931 
## F-statistic: 1.975 on 3 and 487 DF,  p-value: 0.1169
anova(airmod1, airmod4)
## Analysis of Variance Table
## 
## Model 1: LibAir ~ 1
## Model 2: LibAir ~ AirCong + sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1    490 1238.9                           
## 2    487 1224.0  3    14.889 1.9745 0.1169

Some models idek.

dfd1 %>%
  ggplot(aes(x = arctic20)) +
  geom_histogram(binwidth = 1)

dfd1 %>%
  ggplot(aes(x = temp20)) +
  geom_histogram(binwidth = 1)

dfd1 %>%
  ggplot(aes(x = ozone20)) +
  geom_histogram(binwidth = 1)

dfd1 %>%
  ggplot(aes(x = airqual20)) +
  geom_histogram(binwidth = 1)

amodel1 <- lm(data = dfd1, formula = arctic20 ~ con + rav_scored)
summary(amodel1)
## 
## Call:
## lm(formula = arctic20 ~ con + rav_scored, data = dfd1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1376 -0.9259 -0.2691  0.6462  4.5616 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.14851    0.20545  -5.590 3.61e-08 ***
## con          0.32840    0.05791   5.670 2.33e-08 ***
## rav_scored  -0.04233    0.03521  -1.202     0.23    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.278 on 538 degrees of freedom
## Multiple R-squared:  0.06002,    Adjusted R-squared:  0.05653 
## F-statistic: 17.18 on 2 and 538 DF,  p-value: 5.868e-08
amodel2 <- lm(data = dfd1, formula = arctic20 ~ sc_scored + con + rav_scored)
summary(amodel2)
## 
## Call:
## lm(formula = arctic20 ~ sc_scored + con + rav_scored, data = dfd1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1526 -0.9332 -0.2520  0.6423  4.5658 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.097042   0.297467  -3.688 0.000249 ***
## sc_scored   -0.002242   0.009363  -0.239 0.810862    
## con          0.327182   0.058188   5.623 3.02e-08 ***
## rav_scored  -0.041640   0.035361  -1.178 0.239485    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.279 on 537 degrees of freedom
## Multiple R-squared:  0.06012,    Adjusted R-squared:  0.05487 
## F-statistic: 11.45 on 3 and 537 DF,  p-value: 2.746e-07
tmodel1 <- lm(data = dfd1, formula = temp20 ~ con + rav_scored)
summary(tmodel1)
## 
## Call:
## lm(formula = temp20 ~ con + rav_scored, data = dfd1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.9088 -0.7086 -0.1107  0.3915  4.6404 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.34002    0.18046  -7.425 4.43e-13 ***
## con          0.29893    0.05087   5.876 7.36e-09 ***
## rav_scored  -0.05006    0.03093  -1.619    0.106    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.123 on 538 degrees of freedom
## Multiple R-squared:  0.06626,    Adjusted R-squared:  0.06279 
## F-statistic: 19.09 on 2 and 538 DF,  p-value: 9.781e-09
tmodel2 <- lm(data = dfd1, formula = temp20 ~ sc_scored + con + rav_scored)
summary(tmodel2)
## 
## Call:
## lm(formula = temp20 ~ sc_scored + con + rav_scored, data = dfd1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.9979 -0.7406 -0.1174  0.4309  4.6696 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.035689   0.260670  -3.973 8.06e-05 ***
## sc_scored   -0.013257   0.008205  -1.616    0.107    
## con          0.291715   0.050990   5.721 1.76e-08 ***
## rav_scored  -0.045988   0.030987  -1.484    0.138    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.121 on 537 degrees of freedom
## Multiple R-squared:  0.07078,    Adjusted R-squared:  0.06559 
## F-statistic: 13.63 on 3 and 537 DF,  p-value: 1.388e-08
omodel1 <- lm(data = dfd1, formula = ozone20 ~ con + rav_scored)
summary(omodel1)
## 
## Call:
## lm(formula = ozone20 ~ con + rav_scored, data = dfd1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.9177 -0.7984 -0.5995  1.2016  3.4422 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.06338    0.22607  -0.280    0.779
## con         -0.06064    0.06373  -0.952    0.342
## rav_scored  -0.03978    0.03875  -1.027    0.305
## 
## Residual standard error: 1.406 on 538 degrees of freedom
## Multiple R-squared:  0.003459,   Adjusted R-squared:  -0.0002454 
## F-statistic: 0.9338 on 2 and 538 DF,  p-value: 0.3937
omodel2 <- lm(data = dfd1, formula = ozone20 ~ sc_scored + con + rav_scored)
summary(omodel2)
## 
## Call:
## lm(formula = ozone20 ~ sc_scored + con + rav_scored, data = dfd1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.8509 -0.7986 -0.5799  1.2020  3.3982 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.31432    0.32700  -0.961    0.337
## sc_scored    0.01093    0.01029   1.062    0.289
## con         -0.05469    0.06396  -0.855    0.393
## rav_scored  -0.04313    0.03887  -1.110    0.268
## 
## Residual standard error: 1.406 on 537 degrees of freedom
## Multiple R-squared:  0.005548,   Adjusted R-squared:  -7.637e-06 
## F-statistic: 0.9986 on 3 and 537 DF,  p-value: 0.3931
aqmodel1 <- lm(data = dfd1, formula = airqual20 ~ con + rav_scored)
summary(aqmodel1)
## 
## Call:
## lm(formula = airqual20 ~ con + rav_scored, data = dfd1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.4719 -1.1631 -0.2403  0.9363  4.0411 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -0.42336    0.25319  -1.672   0.0951 .
## con         -0.02751    0.07137  -0.385   0.7000  
## rav_scored  -0.07721    0.04340  -1.779   0.0758 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.575 on 538 degrees of freedom
## Multiple R-squared:  0.006013,   Adjusted R-squared:  0.002318 
## F-statistic: 1.627 on 2 and 538 DF,  p-value: 0.1974
aqmodel2 <- lm(data = dfd1, formula = airqual20 ~ sc_scored + con + rav_scored)
summary(aqmodel2)
## 
## Call:
## lm(formula = airqual20 ~ sc_scored + con + rav_scored, data = dfd1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.5861 -1.1467 -0.2811  0.9697  4.0822 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -0.03325    0.36587  -0.091   0.9276  
## sc_scored   -0.01699    0.01152  -1.476   0.1406  
## con         -0.03676    0.07157  -0.514   0.6077  
## rav_scored  -0.07199    0.04349  -1.655   0.0985 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.573 on 537 degrees of freedom
## Multiple R-squared:  0.01003,    Adjusted R-squared:  0.004497 
## F-statistic: 1.813 on 3 and 537 DF,  p-value: 0.1437

and more

3 way one last time

Conservative
Liberal
SciCur Con1_M Con1_SE Con2_M Con2_SE Lib1_M Lib1_SE Lib2_M Lib2_SE
Con Above Avg -0.80 0.42 -1.70 0.26 -0.30 0.40 -1.20 0.44
Con Avg -1.14 0.10 -1.37 0.09 -0.33 0.10 -0.88 0.11
Con Below Avg -0.23 0.34 -1.08 0.24 -0.08 0.35 0.00 0.32
Lib Above Avg -1.30 0.36 -2.05 0.14 0.15 0.36 -0.75 0.48
Lib Avg -1.77 0.08 -1.98 0.06 -0.23 0.09 -0.84 0.10
Lib Below Avg -1.64 0.27 -1.71 0.34 -0.43 0.39 -0.29 0.42
Note:
* Higher scores indicate MORE endpoint bias
* M = mean, SE = standard error
* Item names: Con1 = arctic sea ice, Con2 = global temperature index, Lib1 = ozone layer hole, Lib2 = US air quality

Table color coding. The areas of the table highlighted in gray indicate for each item whether the endpoint bias was congruent with conservative or liberal beliefs. For example, Con1 and Con2 portrayed endpoint bias congruent with conservative beliefs, so the top gray square highlights the Ms and SEs of conservative participants for each item, grouped by science curiosity scores.

Science curiosity groupings. Above avg: z > 1.5, Avg: -1.5 <= z >= 1.5, Below Avg: z < -1.5

What would we predict? If our hypothesis were correct, in the gray areas of this table, there would be a negative relation between science curiosity and endpoint bias scores, indicating that higher science curiosity scores were associated with less biased responding.

Looking at these means, what do we see? The second conservative item (Con2; related to global temperature) does demonstrate directional consistency with this hypothesis among conservatives (and liberals, but with larger SEs). Furthermore, the second liberal item (Lib2; related to air quality) displays directional consistency among conservatives but not liberals.

Is it endpoint bias?

Unlike other studies, we included a few filler items in the motivated reasoning task, two of which were politicized but with clear trends and no endpoint discrepancy.

The politicized filler item related to CO2 levels.

Cons MR Items
Con Filler Items
SciCur Con1_M Con1_SE Con2_M Con2_SE Fill1_M Fill1_SE Fill2_M Fill2_SE
Con Above Avg -0.80 0.42 -1.70 0.26 -2.20 0.20 -2.50 0.17
Con Avg -1.14 0.10 -1.37 0.09 -1.96 0.07 -1.82 0.09
Con Below Avg -0.23 0.34 -1.08 0.24 -1.77 0.17 -1.46 0.33
Lib Above Avg -1.30 0.36 -2.05 0.14 -2.20 0.20 -2.00 0.35
Lib Avg -1.77 0.08 -1.98 0.06 -2.30 0.06 -2.37 0.06
Lib Below Avg -1.64 0.27 -1.71 0.34 -1.93 0.32 -2.14 0.18
Note:
* Higher scores indicate MORE endpoint (?) bias
* M = mean, SE = standard error
* Item names: Con1 = arctic sea ice, Con2 = global temperature index, Fill1 = CO2 levels, Lib2 = ice sheet area

What’s going on? As we would expect, because their trends were not ambiguous, endpoint bias scores were lower for the filler items compared to the motivated reasoning items. Interestingly, though, they were still significantly polarized by ideology, despite the fact that we instructed participants to make their prediction “based on the given information.”

So what? Based on these results, we can’t necessarily determine whether endpoint bias was the mechanism behind polarized responding. In the case of these filler items, we know that it was not simply based on the definition of endpoint bias. Does this indicate, even in our motivated reasoning items, that this is not so much motivated reasoning as biased responding based on existing attitudes? Or are two different mechanisms at play between the filler and the endpoint items? We’d need to know more about the precise reasoning (or lack thereof) that formed their responses. This is one potential question we could examine in a follow-up study, potentially independent of science curiosity.

desc_ch_c <- dfch2 %>% 
  filter(con == 1) %>% 
  select(ArcIce_2, TempCO2_2) %>%
  psych::describe()%>% 
  mutate(C_Min = min,
         C_Max = max,
         M_c = round(mean, 2),
         SD_c = round(sd, 2),
         C_Median = median,
         Skew_c = round(skew, 2)) %>% 
  as.data.frame() %>% 
  select(M_c, SD_c, Skew_c)

desc_ch_l <- dfch2 %>% 
  filter(con == -1) %>% 
  select(ArcIce_2, TempCO2_2) %>%
  psych::describe()%>% 
  mutate(L_Min = min,
         L_Max = max,
         M_l = round(mean, 2),
         SD_l = round(sd, 2),
         L_Median = median,
         Skew_l = round(skew, 2)) %>% 
  as.data.frame() %>% 
  select(M_l, SD_l, Skew_l)

desc_ch_j <- cbind(desc_ch_c, desc_ch_l) %>% 
  select(contains("_c"), contains("_l")) %>% 
  kable() %>% 
  add_header_above(c(" " = 1, "Conservative" = 3, "Liberal" = 3))

arcice

ch_mod <- lm(data = dfch2, formula = ArcIce_2 ~ con + rav_scoredz)

ch_mod <- lm(data = dfch2, formula = temp20_ch ~ con + rav_scoredz + 
               sc_scoredz + diatho20_ch)

summary(ch_mod)
## 
## Call:
## lm(formula = temp20_ch ~ con + rav_scoredz + sc_scoredz + diatho20_ch, 
##     data = dfch2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.3479 -0.7298 -0.1121  0.4467  4.9536 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.75689    0.14900  11.791  < 2e-16 ***
## con          0.27038    0.04984   5.425 8.80e-08 ***
## rav_scoredz -0.04088    0.04856  -0.842   0.4003    
## sc_scoredz  -0.08289    0.04792  -1.730   0.0843 .  
## diatho20_ch  0.16584    0.03807   4.356 1.59e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.088 on 532 degrees of freedom
## Multiple R-squared:  0.102,  Adjusted R-squared:  0.09525 
## F-statistic: 15.11 on 4 and 532 DF,  p-value: 1.047e-11

Preregistered Analyses

MLM (H1)

attempt 1

attempt 2

dfmlm <- import(here("analysis-data", "cleaned-data.csv"))
dfmlm1 <- dfmlm %>% 
  pivot_longer(., cols = c(prac2_1_sc, arctic2_1_sc, temp2_1_sc, ozone2_1_sc,
                           air_qual2_1_sc, dia_tho2_1_sc, co22_1_sc, 
                           ice_sheets2_1_sc, quake2_1_sc),
               names_to = "item",
               values_to = "response",
               values_drop_na = T)
dfmlm2 <- dfmlm1 %>% 
  select(id, con, conservatism_f, item, response, sc_scored, sc_scoredz, 
         rav_scored, rav_scoredz) %>% 
  mutate(item_slope = factor(case_when(
    item == "arctic2_1_sc" | item == "ozone2_1_sc" | item == "ice_sheets2_1_sc" |
      item == "air_qual2_1_sc" ~ "neg",
    item == "temp2_1_sc" | item == "dia_tho2_1_sc" | item == "co22_1_sc" ~ "pos",
    item == "prac2_1_sc" | item == "quake2_1_sc" ~ "zero"
  )),
  item_ambiguous = factor(case_when(
    item == "arctic2_1_sc" | item == "temp2_1_sc" | item == "ozone2_1_sc" | 
      item == "air_qual2_1_sc" | item == "dia_tho2_1_sc" ~ "1",
    item == "quake2_1_sc" | item == "co22_1_sc" | item == "ice_sheets2_1_sc" |
      item == "prac2_1_sc" ~ "0" 
  )),
  item_mr = factor(case_when(
    item == "arctic2_1_sc" | item == "temp2_1_sc" ~ "con",
    item == "ozone2_1_sc" | item == "air_qual2_1_sc" ~ "lib",
    item == "dia_tho2_1_sc" | item == "quake2_1_sc" | item == "co22_1_sc" | 
      item == "ice_sheets2_1_sc" | item == "prac2_1_sc" ~ "filler" 
  )),
  item_political = factor(case_when(
    item == "arctic2_1_sc" | item == "temp2_1_sc" | item == "ozone2_1_sc" | 
      item == "air_qual2_1_sc" | item == "co22_1_sc" | 
      item == "ice_sheets2_1_sc" ~ "1",
    item == "dia_tho2_1_sc" | item == "quake2_1_sc" | item == "prac2_1_sc" ~ "0" 
  )),
  item = factor(item),
  response = as.numeric(response),
  id = factor(id),
  conservatism_f = as.numeric(conservatism_f),
  sc_scored = as.numeric(sc_scored),
  rav_scored = as.numeric(rav_scored)
  )
int_model1 <- lmer(response ~ 1 + (1 | item), data = dfmlm2)

summary(int_model1)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + (1 | item)
##    Data: dfmlm2
## 
## REML criterion at convergence: 16289.1
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.9651 -0.5599 -0.1135  0.7169  3.9596 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  item     (Intercept) 1.777    1.333   
##  Residual             1.642    1.282   
## Number of obs: 4869, groups:  item, 9
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   3.9026     0.4447   8.776
int_model2 <- lmer(response ~ 1 + (1 | item) + (1 | id), data = dfmlm2)

summary(int_model2)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + (1 | item) + (1 | id)
##    Data: dfmlm2
## 
## REML criterion at convergence: 16256.7
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.9223 -0.6221 -0.0949  0.6330  4.1857 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  id       (Intercept) 0.07329  0.2707  
##  item     (Intercept) 1.77679  1.3330  
##  Residual             1.56896  1.2526  
## Number of obs: 4869, groups:  id, 541; item, 9
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   3.9026     0.4448   8.773
anova(int_model1, int_model2)
## Data: dfmlm2
## Models:
## int_model1: response ~ 1 + (1 | item)
## int_model2: response ~ 1 + (1 | item) + (1 | id)
##            npar   AIC   BIC  logLik deviance  Chisq Df Pr(>Chisq)    
## int_model1    3 16295 16315 -8144.6    16289                         
## int_model2    4 16265 16291 -8128.5    16257 32.365  1  1.278e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
model3 <- lmer(response ~ 1 + conservatism_f + (1 + conservatism_f | item) + 
                 (1 + conservatism_f | id), data = dfmlm2)

summary(model3)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + conservatism_f + (1 + conservatism_f | item) +  
##     (1 + conservatism_f | id)
##    Data: dfmlm2
## 
## REML criterion at convergence: 16152.2
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.7363 -0.6199 -0.1134  0.6185  4.2955 
## 
## Random effects:
##  Groups   Name           Variance  Std.Dev. Corr 
##  id       (Intercept)    0.0580548 0.24095       
##           conservatism_f 0.0001105 0.01051  1.00 
##  item     (Intercept)    2.9582668 1.71996       
##           conservatism_f 0.0132910 0.11529  -0.94
##  Residual                1.5250820 1.23494       
## Number of obs: 4869, groups:  id, 541; item, 9
## 
## Fixed effects:
##                 Estimate Std. Error t value
## (Intercept)    3.9017972  0.5753391   6.782
## conservatism_f 0.0002273  0.0402246   0.006
## 
## Correlation of Fixed Effects:
##             (Intr)
## consrvtsm_f -0.915
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see ?isSingular
anova(int_model2, model3)
## Data: dfmlm2
## Models:
## int_model2: response ~ 1 + (1 | item) + (1 | id)
## model3: response ~ 1 + conservatism_f + (1 + conservatism_f | item) + (1 + conservatism_f | id)
##            npar   AIC   BIC  logLik deviance  Chisq Df Pr(>Chisq)    
## int_model2    4 16265 16291 -8128.5    16257                         
## model3        9 16164 16223 -8073.2    16146 110.49  5  < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#"broom.mixed" package does this so you don't have to do it by hand (like below)

# int_model %>% 
#   VarCorr() %>% # get random effects (Var corr matrix)
#   as_tibble() %>% # turn into a tibble
#   select(grp, vcov) %>% # select the grp (label) and vcov (variance)
#   spread(grp, vcov) %>% # spread them out into columns
#   transmute(icc = schoolid / (schoolid + Residual)) %>% # calculate ICC
#   as.numeric()

# icc # this doesn't do sig testing bc this is currently under debate

attempt 3

dfmlm <- dfch2 %>% 
  pivot_longer(., cols = c(arctic20_ch, arctic10_ch, temp20_ch,
                           temp10_ch, ozone20_ch, ozone10_ch, airqual20_ch,
                           airqual10_ch, diatho20_ch, diatho10_ch, co220_ch,
                           co210_ch, icesheets20_ch, icesheets10_ch),
               names_to = "item",
               values_to = "response",
               values_drop_na = T)
dfmlm <- dfmlm %>% 
  select(id, con, conservatism_f, item, response, sc_scored, sc_scoredz, 
         rav_scored, rav_scoredz, aot_scored, aot_zscored, nfc_scored,
         nfc_zscored, vl_scored, vl_zscored, contains("10_ch")) %>% 
  mutate(item_slope = factor(case_when(
    item == "arctic2_1_sc" | item == "ozone2_1_sc" | item == "ice_sheets2_1_sc" |
      item == "air_qual2_1_sc" | item == "arctic1_1_sc" | 
      item == "ozone1_1_sc" | item == "ice_sheets1_1_sc" | 
      item == "air_qual1_1_sc" ~ "neg",
    item == "temp2_1_sc" | item == "dia_tho2_1_sc" | item == "co22_1_sc" |
      item == "temp1_1_sc" | item == "dia_tho1_1_sc" | 
      item == "co21_1_sc" ~ "pos"
    )),
  item_ambiguous = factor(case_when(
    item == "arctic2_1_sc" | item == "temp2_1_sc" | item == "ozone2_1_sc" | 
      item == "air_qual2_1_sc" | item == "dia_tho2_1_sc" |
      item == "arctic1_1_sc" | item == "temp1_1_sc" | item == "ozone1_1_sc" | 
      item == "air_qual1_1_sc" | item == "dia_tho1_1_sc" ~ "1",
    item == "co22_1_sc" | item == "ice_sheets2_1_sc" |
      item == "co21_1_sc" | item == "ice_sheets1_1_sc" ~ "0" 
  )),
  item_ideo = factor(case_when(
    item == "arctic2_1_sc" | item == "temp2_1_sc" | item == "co22_1_sc" | 
      item == "ice_sheets2_1_sc" | item == "arctic1_1_sc" | 
      item == "temp1_1_sc" | item == "co21_1_sc" | 
      item == "ice_sheets1_1_sc"~ "con",
    item == "ozone2_1_sc" | item == "air_qual2_1_sc" | item == "ozone1_1_sc" 
    | item == "air_qual1_1_sc" ~ "lib",
    item == "dia_tho2_1_sc" | item == "dia_tho1_1_sc" ~ "na" 
  )),
  item_political = factor(case_when(
    item == "arctic2_1_sc" | item == "temp2_1_sc" | item == "co22_1_sc" | 
      item == "ice_sheets2_1_sc" | item == "arctic1_1_sc" | 
      item == "temp1_1_sc" | item == "co21_1_sc" | 
      item == "ice_sheets1_1_sc" | item == "ozone2_1_sc" | item ==
      "air_qual2_1_sc" | item == "ozone1_1_sc" | 
      item == "air_qual1_1_sc" ~ "1",
    item == "dia_tho2_1_sc" | item == "dia_tho1_1_sc" ~ "0" 
  )),
  item = factor(item),
  response = as.numeric(response),
  id = factor(id),
  conservatism_f = as.numeric(conservatism_f),
  sc_zscored = as.numeric(sc_scoredz),
  rav_zscored = as.numeric(rav_scoredz),
  aot_zscored = as.numeric(aot_zscored),
  nfc_zscored = as.numeric(nfc_zscored),
  vl_zscored = as.numeric(vl_zscored)
  )
int_model1 <- lmer(response ~ 1 + (1 | item), data = dfmlm)

summary(int_model1)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + (1 | item)
##    Data: dfmlm
## 
## REML criterion at convergence: 23181
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -2.4162 -0.6303 -0.1331  0.4349  4.5187 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  item     (Intercept) 0.4387   0.6624  
##  Residual             1.2658   1.1251  
## Number of obs: 7518, groups:  item, 14
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   2.9433     0.1775   16.58
int_model2 <- lmer(response ~ 1 + (1 | item) + (1 | id), data = dfmlm)

summary(int_model2)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + (1 | item) + (1 | id)
##    Data: dfmlm
## 
## REML criterion at convergence: 22299.1
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.9044 -0.6140 -0.1220  0.4911  5.1819 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  id       (Intercept) 0.2557   0.5057  
##  item     (Intercept) 0.4392   0.6627  
##  Residual             1.0101   1.0050  
## Number of obs: 7518, groups:  id, 537; item, 14
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   2.9433     0.1788   16.46
anova(int_model1, int_model2)
## Data: dfmlm
## Models:
## int_model1: response ~ 1 + (1 | item)
## int_model2: response ~ 1 + (1 | item) + (1 | id)
##            npar   AIC   BIC logLik deviance  Chisq Df Pr(>Chisq)    
## int_model1    3 23185 23206 -11590    23179                         
## int_model2    4 22305 22333 -11149    22297 881.98  1  < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
model3 <- lmer(response ~ 1 + conservatism_f + (1 + conservatism_f | item) + 
                 (1 + conservatism_f | id), data = dfmlm)

summary(model3)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + conservatism_f + (1 + conservatism_f | item) +  
##     (1 + conservatism_f | id)
##    Data: dfmlm
## 
## REML criterion at convergence: 22143.8
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.8771 -0.6136 -0.1172  0.4945  5.3950 
## 
## Random effects:
##  Groups   Name           Variance Std.Dev. Corr 
##  id       (Intercept)    0.128528 0.35851       
##           conservatism_f 0.001259 0.03549  1.00 
##  item     (Intercept)    0.842556 0.91791       
##           conservatism_f 0.006623 0.08138  -0.89
##  Residual                0.988649 0.99431       
## Number of obs: 7518, groups:  id, 537; item, 14
## 
## Fixed effects:
##                Estimate Std. Error t value
## (Intercept)     2.69161    0.25055  10.743
## conservatism_f  0.06829    0.02561   2.667
## 
## Correlation of Fixed Effects:
##             (Intr)
## consrvtsm_f -0.839
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see ?isSingular
anova(int_model2, model3)
## Data: dfmlm
## Models:
## int_model2: response ~ 1 + (1 | item) + (1 | id)
## model3: response ~ 1 + conservatism_f + (1 + conservatism_f | item) + (1 + conservatism_f | id)
##            npar   AIC   BIC logLik deviance  Chisq Df Pr(>Chisq)    
## int_model2    4 22305 22333 -11149    22297                         
## model3        9 22154 22216 -11068    22136 161.31  5  < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
model4 <- lmer(response ~ 1 + conservatism_f + 
                 (1 | item) + 
                 (1 + conservatism_f | id), data = dfmlm)

summary(model4)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + conservatism_f + (1 | item) + (1 + conservatism_f |  
##     id)
##    Data: dfmlm
## 
## REML criterion at convergence: 22271
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.9276 -0.6084 -0.1189  0.4873  5.2046 
## 
## Random effects:
##  Groups   Name           Variance Std.Dev. Corr
##  id       (Intercept)    0.127273 0.35675      
##           conservatism_f 0.001264 0.03555  1.00
##  item     (Intercept)    0.441478 0.66444      
##  Residual                1.010036 1.00501      
## Number of obs: 7518, groups:  id, 537; item, 14
## 
## Fixed effects:
##                Estimate Std. Error t value
## (Intercept)     2.69161    0.18473  14.570
## conservatism_f  0.06828    0.01352   5.051
## 
## Correlation of Fixed Effects:
##             (Intr)
## consrvtsm_f -0.244
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see ?isSingular
anova(int_model2, model4)
## Data: dfmlm
## Models:
## int_model2: response ~ 1 + (1 | item) + (1 | id)
## model4: response ~ 1 + conservatism_f + (1 | item) + (1 + conservatism_f | id)
##            npar   AIC   BIC logLik deviance  Chisq Df Pr(>Chisq)    
## int_model2    4 22305 22333 -11149    22297                         
## model4        7 22276 22325 -11131    22262 34.873  3  1.296e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
model5 <- lmer(response ~ 1 + conservatism_f + sc_zscored + 
                 (1 | item) + 
                 (1 + conservatism_f + sc_zscored | id), data = dfmlm)

summary(model5)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + conservatism_f + sc_zscored + (1 | item) + (1 +  
##     conservatism_f + sc_zscored | id)
##    Data: dfmlm
## 
## REML criterion at convergence: 22272.9
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.9361 -0.6095 -0.1184  0.4894  5.2165 
## 
## Random effects:
##  Groups   Name           Variance Std.Dev. Corr     
##  id       (Intercept)    0.108210 0.32895           
##           conservatism_f 0.001408 0.03753  1.00     
##           sc_zscored     0.019413 0.13933  0.11 0.11
##  item     (Intercept)    0.438955 0.66254           
##  Residual                1.010055 1.00501           
## Number of obs: 7518, groups:  id, 537; item, 14
## 
## Fixed effects:
##                Estimate Std. Error t value
## (Intercept)     2.69539    0.18422  14.631
## conservatism_f  0.06647    0.01353   4.914
## sc_zscored     -0.03490    0.02542  -1.373
## 
## Correlation of Fixed Effects:
##             (Intr) cnsrv_
## consrvtsm_f -0.244       
## sc_zscored  -0.026  0.110
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see ?isSingular
anova(model4, model5)
## Data: dfmlm
## Models:
## model4: response ~ 1 + conservatism_f + (1 | item) + (1 + conservatism_f | id)
## model5: response ~ 1 + conservatism_f + sc_zscored + (1 | item) + (1 + conservatism_f + sc_zscored | id)
##        npar   AIC   BIC logLik deviance  Chisq Df Pr(>Chisq)
## model4    7 22276 22325 -11131    22262                     
## model5   11 22281 22357 -11130    22259 3.5899  4     0.4643
model6 <- lmer(response ~ 1 + conservatism_f + rav_zscored + 
                 (1 | item) + 
                 (1 + conservatism_f + rav_zscored | id), data = dfmlm)

summary(model6)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + conservatism_f + rav_zscored + (1 | item) + (1 +  
##     conservatism_f + rav_zscored | id)
##    Data: dfmlm
## 
## REML criterion at convergence: 22260
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.9010 -0.6062 -0.1205  0.4936  5.2090 
## 
## Random effects:
##  Groups   Name           Variance Std.Dev. Corr       
##  id       (Intercept)    0.126895 0.3562              
##           conservatism_f 0.004122 0.0642    0.14      
##           rav_zscored    0.021495 0.1466   -0.69  0.62
##  item     (Intercept)    0.439830 0.6632              
##  Residual                1.009995 1.0050              
## Number of obs: 7518, groups:  id, 537; item, 14
## 
## Fixed effects:
##                Estimate Std. Error t value
## (Intercept)     2.68408    0.18430  14.563
## conservatism_f  0.06872    0.01354   5.074
## rav_zscored    -0.05201    0.02530  -2.056
## 
## Correlation of Fixed Effects:
##             (Intr) cnsrv_
## consrvtsm_f -0.243       
## rav_zscored -0.056  0.158
## optimizer (nloptwrap) convergence code: 0 (OK)
## Model failed to converge with max|grad| = 0.0269086 (tol = 0.002, component 1)
anova(model4, model6)
## Data: dfmlm
## Models:
## model4: response ~ 1 + conservatism_f + (1 | item) + (1 + conservatism_f | id)
## model6: response ~ 1 + conservatism_f + rav_zscored + (1 | item) + (1 + conservatism_f + rav_zscored | id)
##        npar   AIC   BIC logLik deviance  Chisq Df Pr(>Chisq)   
## model4    7 22276 22325 -11131    22262                        
## model6   11 22268 22344 -11123    22246 16.475  4   0.002444 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
model7 <- lmer(response ~ 1 + conservatism_f + rav_zscored + aot_zscored +
                 (1 | item) + 
                 (1 + conservatism_f + rav_zscored + aot_zscored| id), data = dfmlm)

summary(model7)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + conservatism_f + rav_zscored + aot_zscored + (1 |  
##     item) + (1 + conservatism_f + rav_zscored + aot_zscored |      id)
##    Data: dfmlm
## 
## REML criterion at convergence: 22251
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.9704 -0.6076 -0.1231  0.4896  5.2259 
## 
## Random effects:
##  Groups   Name           Variance Std.Dev. Corr             
##  id       (Intercept)    0.097786 0.31271                   
##           conservatism_f 0.005499 0.07415   0.03            
##           rav_zscored    0.017416 0.13197  -0.83  0.53      
##           aot_zscored    0.028462 0.16871   0.01  0.27  0.15
##  item     (Intercept)    0.439122 0.66266                   
##  Residual                1.009903 1.00494                   
## Number of obs: 7518, groups:  id, 537; item, 14
## 
## Fixed effects:
##                Estimate Std. Error t value
## (Intercept)     2.73791    0.18474  14.820
## conservatism_f  0.05427    0.01423   3.813
## rav_zscored    -0.03368    0.02558  -1.317
## aot_zscored    -0.08625    0.02867  -3.009
## 
## Correlation of Fixed Effects:
##             (Intr) cnsrv_ rv_zsc
## consrvtsm_f -0.256              
## rav_zscored -0.032  0.065       
## aot_zscored -0.092  0.332 -0.221
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see ?isSingular
anova(model6, model7)
## Data: dfmlm
## Models:
## model6: response ~ 1 + conservatism_f + rav_zscored + (1 | item) + (1 + conservatism_f + rav_zscored | id)
## model7: response ~ 1 + conservatism_f + rav_zscored + aot_zscored + (1 | item) + (1 + conservatism_f + rav_zscored + aot_zscored | id)
##        npar   AIC   BIC logLik deviance Chisq Df Pr(>Chisq)  
## model6   11 22268 22344 -11123    22246                      
## model7   16 22264 22374 -11116    22232 14.38  5    0.01337 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

“IMRI” (H2)

z >= 1.5

dfd1 <- dfd1 %>%
  mutate(ebiasiz15_arctic = ifelse(arctic20_z >= 1.5, 1, 0),
         ebiasiz15_temp = ifelse(temp20_z >= 1.5, 1, 0),
         ebiasiz15_ozone = ifelse(ozone20_z >= 1.5, 1, 0),
         ebiasiz15_airqual = ifelse(airqual20_z >= 1.5, 1, 0))

dfd1 %>% 
  select(contains("ebiasiz15")) %>% 
  psych::describe()
##                   vars   n mean   sd median trimmed mad min max range skew
## ebiasiz15_arctic     1 541 0.12 0.33      0    0.03   0   0   1     1 2.33
## ebiasiz15_temp       2 541 0.07 0.26      0    0.00   0   0   1     1 3.35
## ebiasiz15_ozone      3 541 0.13 0.34      0    0.04   0   0   1     1 2.20
## ebiasiz15_airqual    4 541 0.12 0.33      0    0.03   0   0   1     1 2.28
##                   kurtosis   se
## ebiasiz15_arctic      3.44 0.01
## ebiasiz15_temp        9.27 0.01
## ebiasiz15_ozone       2.86 0.01
## ebiasiz15_airqual     3.19 0.01
arcticmodel1 <- glm(data = dfd1, formula = ebiasiz15_arctic ~ con + rav_scored, family = "binomial")
summary(arcticmodel1)
## 
## Call:
## glm(formula = ebiasiz15_arctic ~ con + rav_scored, family = "binomial", 
##     data = dfd1)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -0.8068  -0.5801  -0.4492  -0.3712   2.3278  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)   
## (Intercept) -1.20444    0.47997  -2.509  0.01209 * 
## con          0.39752    0.14368   2.767  0.00566 **
## rav_scored  -0.14836    0.08599  -1.725  0.08446 . 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 397.33  on 540  degrees of freedom
## Residual deviance: 386.04  on 538  degrees of freedom
## AIC: 392.04
## 
## Number of Fisher Scoring iterations: 5
arcticmodel2 <- glm(data = dfd1, formula = ebiasiz15_arctic ~ sc_scored + con + rav_scored, family = "binomial")
summary(arcticmodel2)
## 
## Call:
## glm(formula = ebiasiz15_arctic ~ sc_scored + con + rav_scored, 
##     family = "binomial", data = dfd1)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -0.8099  -0.5763  -0.4527  -0.3747   2.3308  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)   
## (Intercept) -1.26545    0.70661  -1.791  0.07331 . 
## sc_scored    0.00267    0.02266   0.118  0.90621   
## con          0.39899    0.14424   2.766  0.00567 **
## rav_scored  -0.14925    0.08633  -1.729  0.08385 . 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 397.33  on 540  degrees of freedom
## Residual deviance: 386.02  on 537  degrees of freedom
## AIC: 394.02
## 
## Number of Fisher Scoring iterations: 5
tempmodel1 <- glm(data = dfd1, formula = ebiasiz15_temp ~ con + rav_scored, family = "binomial")
summary(tempmodel1)
## 
## Call:
## glm(formula = ebiasiz15_temp ~ con + rav_scored, family = "binomial", 
##     data = dfd1)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -0.5820  -0.4722  -0.2956  -0.2707   2.5786  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  -2.1753     0.6229  -3.492 0.000479 ***
## con           0.5751     0.1925   2.987 0.002816 ** 
## rav_scored   -0.0896     0.1095  -0.818 0.413337    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 275.11  on 540  degrees of freedom
## Residual deviance: 264.42  on 538  degrees of freedom
## AIC: 270.42
## 
## Number of Fisher Scoring iterations: 6
tempmodel2 <- glm(data = dfd1, formula = ebiasiz15_temp ~ sc_scored + con + rav_scored, family = "binomial")
summary(tempmodel2)
## 
## Call:
## glm(formula = ebiasiz15_temp ~ sc_scored + con + rav_scored, 
##     family = "binomial", data = dfd1)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -0.6633  -0.4526  -0.3136  -0.2581   2.6989  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)   
## (Intercept) -1.29563    0.88829  -1.459  0.14468   
## sc_scored   -0.03952    0.02916  -1.356  0.17525   
## con          0.55582    0.19325   2.876  0.00403 **
## rav_scored  -0.07663    0.11005  -0.696  0.48622   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 275.11  on 540  degrees of freedom
## Residual deviance: 262.57  on 537  degrees of freedom
## AIC: 270.57
## 
## Number of Fisher Scoring iterations: 6
ozonemodel1 <- glm(data = dfd1, formula = ebiasiz15_ozone ~ con + rav_scored, family = "binomial")
summary(ozonemodel1)
## 
## Call:
## glm(formula = ebiasiz15_ozone ~ con + rav_scored, family = "binomial", 
##     data = dfd1)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -0.6814  -0.5458  -0.5122  -0.4804   2.2182  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)   
## (Intercept) -1.31434    0.46257  -2.841  0.00449 **
## con         -0.08068    0.13596  -0.593  0.55292   
## rav_scored  -0.10844    0.08184  -1.325  0.18515   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 416.81  on 540  degrees of freedom
## Residual deviance: 414.77  on 538  degrees of freedom
## AIC: 420.77
## 
## Number of Fisher Scoring iterations: 4
ozonemodel2 <- glm(data = dfd1, formula = ebiasiz15_ozone ~ sc_scored + con + rav_scored, family = "binomial")
summary(ozonemodel2)
## 
## Call:
## glm(formula = ebiasiz15_ozone ~ sc_scored + con + rav_scored, 
##     family = "binomial", data = dfd1)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -0.7396  -0.5546  -0.5044  -0.4428   2.3096  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)   
## (Intercept) -2.24172    0.70190  -3.194   0.0014 **
## sc_scored    0.03969    0.02199   1.806   0.0710 . 
## con         -0.05971    0.13690  -0.436   0.6627   
## rav_scored  -0.12134    0.08276  -1.466   0.1426   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 416.81  on 540  degrees of freedom
## Residual deviance: 411.48  on 537  degrees of freedom
## AIC: 419.48
## 
## Number of Fisher Scoring iterations: 4
airqualmodel1 <- glm(data = dfd1, formula = ebiasiz15_airqual ~ con + rav_scored, family = "binomial")
summary(airqualmodel1)
## 
## Call:
## glm(formula = ebiasiz15_airqual ~ con + rav_scored, family = "binomial", 
##     data = dfd1)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -0.7967  -0.5565  -0.5069  -0.4281   2.2889  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## (Intercept) -0.86241    0.46132  -1.869   0.0616 .
## con          0.07795    0.13800   0.565   0.5722  
## rav_scored  -0.20045    0.08404  -2.385   0.0171 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 405.23  on 540  degrees of freedom
## Residual deviance: 399.06  on 538  degrees of freedom
## AIC: 405.06
## 
## Number of Fisher Scoring iterations: 4
airqualmodel2 <- glm(data = dfd1, formula = ebiasiz15_airqual ~ sc_scored + con + rav_scored, family = "binomial")
summary(airqualmodel2)
## 
## Call:
## glm(formula = ebiasiz15_airqual ~ sc_scored + con + rav_scored, 
##     family = "binomial", data = dfd1)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -0.7982  -0.5429  -0.4919  -0.4253   2.3661  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## (Intercept) -1.25341    0.69151  -1.813   0.0699 .
## sc_scored    0.01704    0.02223   0.767   0.4433  
## con          0.08729    0.13866   0.630   0.5290  
## rav_scored  -0.20644    0.08463  -2.439   0.0147 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 405.23  on 540  degrees of freedom
## Residual deviance: 398.47  on 537  degrees of freedom
## AIC: 406.47
## 
## Number of Fisher Scoring iterations: 5

###z > 0 Here’s what happens if we code it based on whether or not they exhibit above-average endpoint bias (e.g., z > 0).

dfd1 <- dfd1 %>% 
  mutate(ebiasiz0_arctic = ifelse(arctic20_z >= 0, 1, 0),
         ebiasiz0_temp = ifelse(temp20_z >= 0, 1, 0),
         ebiasiz0_ozone = ifelse(ozone20_z >= 0, 1, 0),
         ebiasiz0_airqual = ifelse(airqual20_z >= 0, 1, 0))

dfd1 %>% 
  select(contains("ebiasiz0")) %>% 
  psych::describe()
##                  vars   n mean   sd median trimmed mad min max range skew
## ebiasiz0_arctic     1 541 0.41 0.49      0    0.39   0   0   1     1 0.36
## ebiasiz0_temp       2 541 0.35 0.48      0    0.31   0   0   1     1 0.62
## ebiasiz0_ozone      3 541 0.46 0.50      0    0.45   0   0   1     1 0.17
## ebiasiz0_airqual    4 541 0.29 0.46      0    0.24   0   0   1     1 0.90
##                  kurtosis   se
## ebiasiz0_arctic     -1.87 0.02
## ebiasiz0_temp       -1.62 0.02
## ebiasiz0_ozone      -1.98 0.02
## ebiasiz0_airqual    -1.19 0.02
dfd1 <- dfd1 %>% 
  mutate(
    ebiasiz0_con = ebiasiz0_arctic + ebiasiz0_temp,
    ebiasiz0_lib = ebiasiz0_ozone + ebiasiz0_airqual,
    ebiasiz0_con_yn = ifelse(ebiasiz0_con == 2, 1, 0),
    ebiasiz0_lib_yn = ifelse(ebiasiz0_lib == 2, 1, 0),
  )

dfd1 %>% 
  select(ebiasiz0_con, ebiasiz0_lib, ebiasiz0_con_yn, ebiasiz0_lib_yn) %>% 
  psych::describe()
##                 vars   n mean   sd median trimmed  mad min max range skew
## ebiasiz0_con       1 541 0.76 0.81      1    0.70 1.48   0   2     2 0.46
## ebiasiz0_lib       2 541 0.75 0.79      1    0.69 1.48   0   2     2 0.47
## ebiasiz0_con_yn    3 541 0.23 0.42      0    0.17 0.00   0   1     1 1.26
## ebiasiz0_lib_yn    4 541 0.22 0.41      0    0.15 0.00   0   1     1 1.36
##                 kurtosis   se
## ebiasiz0_con       -1.32 0.03
## ebiasiz0_lib       -1.25 0.03
## ebiasiz0_con_yn    -0.41 0.02
## ebiasiz0_lib_yn    -0.15 0.02

###y/n Here’s what happens if we code it solely based on whether or not they exhibit endpoint bias at all (e.g., score > 0; the higher the number, the more extreme their bias)

dfd1 <- dfd1 %>% 
  mutate(imri_iz0 = case_when(
    con == 1 ~ ifelse(ebiasiz0_con_yn == 1 & ebiasiz0_lib_yn == 0, 1, 0),
    con == 0 ~ ifelse(ebiasiz0_con_yn == 0 & ebiasiz0_lib_yn == 1, 1, 0),
    TRUE ~ 0
  ))

dfd1 %>% 
  filter(imri_iz0 == 1) %>% 
  nrow()
## [1] 67
dfd1 <- dfd1 %>% 
  mutate(ebiasie_arctic_eb = ifelse(arctic20_eb > 0, 1, 0),
         ebiasie_temp_eb = ifelse(temp20_eb > 0, 1, 0),
         ebiasie_ozone_eb = ifelse(ozone20_eb > 0, 1, 0),
         ebiasie_airqual_eb = ifelse(airqual20_eb > 0, 1, 0)
  )

dfd1 %>% 
  select(contains("ebiasie")) %>% 
  psych::describe()
##                    vars   n mean   sd median trimmed mad min max range skew
## ebiasie_arctic_eb     1 541 0.12 0.33      0    0.03   0   0   1     1 2.33
## ebiasie_temp_eb       2 541 0.07 0.26      0    0.00   0   0   1     1 3.35
## ebiasie_ozone_eb      3 541 0.30 0.46      0    0.25   0   0   1     1 0.86
## ebiasie_airqual_eb    4 541 0.24 0.43      0    0.18   0   0   1     1 1.21
##                    kurtosis   se
## ebiasie_arctic_eb      3.44 0.01
## ebiasie_temp_eb        9.27 0.01
## ebiasie_ozone_eb      -1.26 0.02
## ebiasie_airqual_eb    -0.53 0.02
dfd1 <- dfd1 %>% 
  mutate(
    ebiasie_con_eb = ebiasie_arctic_eb + ebiasie_temp_eb,
    ebiasie_lib_eb = ebiasie_ozone_eb + ebiasie_airqual_eb,
    ebiasie_con_yn_eb = ifelse(ebiasie_con_eb == 2, 1, 0),
    ebiasie_lib_yn_eb = ifelse(ebiasie_lib_eb == 2, 1, 0),
  )

dfd1 %>% 
  select(ebiasie_con_eb, ebiasie_lib_eb, ebiasie_con_yn_eb, ebiasie_lib_yn_eb) %>% 
  psych::describe()
##                   vars   n mean   sd median trimmed mad min max range skew
## ebiasie_con_eb       1 541 0.19 0.48      0    0.06   0   0   2     2 2.54
## ebiasie_lib_eb       2 541 0.54 0.73      0    0.43   0   0   2     2 0.95
## ebiasie_con_yn_eb    3 541 0.04 0.19      0    0.00   0   0   1     1 4.76
## ebiasie_lib_yn_eb    4 541 0.14 0.35      0    0.06   0   0   1     1 2.02
##                   kurtosis   se
## ebiasie_con_eb        5.64 0.02
## ebiasie_lib_eb       -0.53 0.03
## ebiasie_con_yn_eb    20.71 0.01
## ebiasie_lib_yn_eb     2.09 0.02
dfd1 <- dfd1 %>% 
  mutate(imri_ieb = case_when(
    con == 1 ~ ifelse(ebiasie_con_yn_eb == 1 & ebiasie_lib_yn_eb == 0, 1, 0),
    con == 0 ~ ifelse(ebiasie_con_yn_eb == 0 & ebiasie_lib_yn_eb == 1, 1, 0),
    TRUE ~ 0
  ))

dfd1 %>% 
  filter(imri_ieb == 1) %>% 
  nrow()
## [1] 17

here’s a diff doc attempt

Log Model Coding for Above Average control only

imriiz0_model1 = glm(data = dfd1, formula = as.factor(imri_iz0) ~ conservatism_f,
                     family = "binomial")

summary(imriiz0_model1)
## 
## Call:
## glm(formula = as.factor(imri_iz0) ~ conservatism_f, family = "binomial", 
##     data = dfd1)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.2671  -0.4707  -0.2373  -0.1488   2.3176  
## 
## Coefficients:
##                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)     -6.3796     0.6654  -9.587  < 2e-16 ***
## conservatism_f   0.9411     0.1198   7.855 4.01e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 405.23  on 540  degrees of freedom
## Residual deviance: 301.20  on 539  degrees of freedom
## AIC: 305.2
## 
## Number of Fisher Scoring iterations: 6

w/ predictor

imriiz0_model2 = glm(data = dfd1, formula = as.factor(imri_iz0) ~ sc_scored + 
                       conservatism_f, family = "binomial")

summary(imriiz0_model2)
## 
## Call:
## glm(formula = as.factor(imri_iz0) ~ sc_scored + conservatism_f, 
##     family = "binomial", data = dfd1)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.2825  -0.4740  -0.2357  -0.1467   2.3207  
## 
## Coefficients:
##                 Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    -6.293747   0.928939  -6.775 1.24e-11 ***
## sc_scored      -0.003308   0.025090  -0.132    0.895    
## conservatism_f  0.940054   0.120070   7.829 4.91e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 405.23  on 540  degrees of freedom
## Residual deviance: 301.19  on 538  degrees of freedom
## AIC: 307.19
## 
## Number of Fisher Scoring iterations: 6
comp_iz0 <- anova(imriiz0_model1, imriiz0_model2)

summary(comp_iz0)

###Coding for Endpoint Bias control only

# imriie_model1 = glm(data = dfd1, formula = as.factor(imri_ie) ~ conservatism_f, 
#                     family = "binomial")
# 
# summary(imriie_model1)

w/ predictor

# imriie_model2 = glm(data = dfd1, formula = as.factor(imri_ie) ~ sc_scored + 
#                       conservatism_f, family = "binomial")
# 
# summary(imriie_model2)
# comp_ie <- anova(imriie_model1, imriie_model2)
# 
# summary(comp_ie)

Exploratory Analyses

tons of aot/nfc models

look1 <- lm(data = dfch2, formula = arctic20_ch ~ con + rav_scoredz + sc_scoredz + aot_zscored + nfc_zscored)
summary(look1)
## 
## Call:
## lm(formula = arctic20_ch ~ con + rav_scoredz + sc_scoredz + aot_zscored + 
##     nfc_zscored, data = dfch2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.4944 -0.8494 -0.2192  0.4917  4.2281 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.606664   0.054412  47.906  < 2e-16 ***
## con          0.264317   0.059484   4.444 1.08e-05 ***
## rav_scoredz -0.004859   0.057782  -0.084 0.933014    
## sc_scoredz  -0.031705   0.058283  -0.544 0.586681    
## aot_zscored -0.231368   0.063269  -3.657 0.000281 ***
## nfc_zscored  0.100064   0.059103   1.693 0.091036 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.256 on 531 degrees of freedom
## Multiple R-squared:  0.08183,    Adjusted R-squared:  0.07318 
## F-statistic: 9.465 on 5 and 531 DF,  p-value: 1.17e-08
look2 <- lm(data = dfch2, formula = arctic20_ch ~ con * aot_zscored)
summary(look2)
## 
## Call:
## lm(formula = arctic20_ch ~ con * aot_zscored, data = dfch2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0320 -0.8989 -0.1740  0.3503  4.1378 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      2.64672    0.05609  47.190  < 2e-16 ***
## con              0.25896    0.05903   4.387 1.39e-05 ***
## aot_zscored     -0.20639    0.05920  -3.487  0.00053 ***
## con:aot_zscored  0.16767    0.06177   2.714  0.00686 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.249 on 533 degrees of freedom
## Multiple R-squared:  0.08944,    Adjusted R-squared:  0.08432 
## F-statistic: 17.45 on 3 and 533 DF,  p-value: 8.035e-11
look23 <- lm(data = dfch3, formula = arctic20_ch ~ con * aot_zscored)
summary(look23)
## 
## Call:
## lm(formula = arctic20_ch ~ con * aot_zscored, data = dfch3)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.9856 -0.8999 -0.1778  0.3897  4.2826 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      2.61550    0.05582  46.853  < 2e-16 ***
## con              0.29428    0.05909   4.980 8.69e-07 ***
## aot_zscored     -0.15748    0.06551  -2.404   0.0166 *  
## con:aot_zscored  0.10104    0.06961   1.451   0.1473    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.225 on 516 degrees of freedom
## Multiple R-squared:  0.08114,    Adjusted R-squared:  0.07579 
## F-statistic: 15.19 on 3 and 516 DF,  p-value: 1.744e-09
look3 <- lm(data = dfch2, formula = arctic20_ch ~ rav_scoredz + con * aot_zscored)
summary(look3)
## 
## Call:
## lm(formula = arctic20_ch ~ rav_scoredz + con * aot_zscored, data = dfch2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0290 -0.8947 -0.1596  0.3472  4.1445 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      2.64698    0.05615  47.140  < 2e-16 ***
## rav_scoredz      0.01144    0.05769   0.198 0.842960    
## con              0.25862    0.05911   4.376 1.46e-05 ***
## aot_zscored     -0.20969    0.06154  -3.407 0.000706 ***
## con:aot_zscored  0.16897    0.06217   2.718 0.006788 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.25 on 532 degrees of freedom
## Multiple R-squared:  0.08951,    Adjusted R-squared:  0.08267 
## F-statistic: 13.08 on 4 and 532 DF,  p-value: 3.645e-10
look4 <- lm(data = dfch2, formula = arctic20_ch ~ vl_zscored + con * aot_zscored)
summary(look4)
## 
## Call:
## lm(formula = arctic20_ch ~ vl_zscored + con * aot_zscored, data = dfch2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0321 -0.9038 -0.1258  0.3563  4.1951 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      2.64578    0.05610  47.164  < 2e-16 ***
## vl_zscored      -0.05351    0.05510  -0.971  0.33196    
## con              0.25662    0.05908   4.344 1.68e-05 ***
## aot_zscored     -0.19558    0.06024  -3.247  0.00124 ** 
## con:aot_zscored  0.16509    0.06183   2.670  0.00782 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.249 on 532 degrees of freedom
## Multiple R-squared:  0.09106,    Adjusted R-squared:  0.08422 
## F-statistic: 13.32 on 4 and 532 DF,  p-value: 2.359e-10
look5 <- lm(data = dfch2, formula = arctic20_ch ~ nfc_zscored 
            + con * aot_zscored) # 3 way int is a no go tho, w none of nfc int sig but me is
summary(look5)
## 
## Call:
## lm(formula = arctic20_ch ~ nfc_zscored + con * aot_zscored, data = dfch2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1547 -0.8881 -0.1257  0.3685  4.2290 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      2.64910    0.05598  47.326  < 2e-16 ***
## nfc_zscored      0.10279    0.05588   1.840 0.066383 .  
## con              0.25941    0.05890   4.404 1.28e-05 ***
## aot_zscored     -0.23098    0.06056  -3.814 0.000153 ***
## con:aot_zscored  0.17682    0.06184   2.860 0.004409 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.246 on 532 degrees of freedom
## Multiple R-squared:  0.0952, Adjusted R-squared:  0.0884 
## F-statistic: 13.99 on 4 and 532 DF,  p-value: 7.301e-11
look6 <- lm(data = dfch2, formula = arctic20_ch ~ sc_scoredz 
            + con * aot_zscored) 
summary(look6)
## 
## Call:
## lm(formula = arctic20_ch ~ sc_scoredz + con * aot_zscored, data = dfch2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0309 -0.8978 -0.1672  0.3561  4.1336 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      2.646752   0.056140  47.146  < 2e-16 ***
## sc_scoredz      -0.004146   0.055008  -0.075 0.939948    
## con              0.258674   0.059205   4.369  1.5e-05 ***
## aot_zscored     -0.206031   0.059448  -3.466 0.000571 ***
## con:aot_zscored  0.167762   0.061842   2.713 0.006889 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.25 on 532 degrees of freedom
## Multiple R-squared:  0.08945,    Adjusted R-squared:  0.08261 
## F-statistic: 13.07 on 4 and 532 DF,  p-value: 3.704e-10
look7 <- lm(data = dfch2, formula = arctic20_ch ~ sc_scoredz + nfc_zscored 
            + con * aot_zscored) 
summary(look7)
## 
## Call:
## lm(formula = arctic20_ch ~ sc_scoredz + nfc_zscored + con * aot_zscored, 
##     data = dfch2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1619 -0.8873 -0.1392  0.3943  4.1934 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      2.64968    0.05601  47.307  < 2e-16 ***
## sc_scoredz      -0.03977    0.05779  -0.688 0.491605    
## nfc_zscored      0.11553    0.05889   1.962 0.050305 .  
## con              0.25672    0.05906   4.347 1.65e-05 ***
## aot_zscored     -0.23054    0.06059  -3.805 0.000158 ***
## con:aot_zscored  0.17881    0.06193   2.887 0.004046 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.247 on 531 degrees of freedom
## Multiple R-squared:  0.09601,    Adjusted R-squared:  0.08749 
## F-statistic: 11.28 on 5 and 531 DF,  p-value: 2.364e-10
look8 <- lm(data = dfch2, formula = sc_scoredz ~ con + aot_zscored + rav_scoredz)
summary(look8)
## 
## Call:
## lm(formula = sc_scoredz ~ con + aot_zscored + rav_scoredz, data = dfch2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.7211 -0.6174  0.0383  0.6695  3.1962 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept)  0.001481   0.042551   0.035    0.972
## con         -0.069807   0.046414  -1.504    0.133
## aot_zscored  0.067749   0.048374   1.401    0.162
## rav_scoredz  0.065528   0.045097   1.453    0.147
## 
## Residual standard error: 0.9825 on 533 degrees of freedom
## Multiple R-squared:  0.01803,    Adjusted R-squared:  0.01251 
## F-statistic: 3.263 on 3 and 533 DF,  p-value: 0.02121
look9 <- lm(data = dfch2, formula = sc_scoredz ~ con)
summary(look9)
## 
## Call:
## lm(formula = sc_scoredz ~ con, data = dfch2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.72607 -0.62151 -0.02673  0.64428  3.16058 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  0.002401   0.042692   0.056   0.9552  
## con         -0.091520   0.044830  -2.042   0.0417 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9858 on 535 degrees of freedom
## Multiple R-squared:  0.00773,    Adjusted R-squared:  0.005875 
## F-statistic: 4.168 on 1 and 535 DF,  p-value: 0.04169
look10 <- lm(data = dfch2, formula = sc_scoredz ~ con + aot_zscored)
summary(look10)
## 
## Call:
## lm(formula = sc_scoredz ~ con + aot_zscored, data = dfch2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.65142 -0.65041  0.03264  0.66999  3.13906 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  0.001806   0.042594   0.042   0.9662  
## con         -0.068159   0.046449  -1.467   0.1429  
## aot_zscored  0.086865   0.046600   1.864   0.0629 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9835 on 534 degrees of freedom
## Multiple R-squared:  0.01414,    Adjusted R-squared:  0.01045 
## F-statistic: 3.831 on 2 and 534 DF,  p-value: 0.02229
look11 <- lm(data = dfch2, formula = sc_scoredz ~ aot_zscored)
summary(look11)
## 
## Call:
## lm(formula = sc_scoredz ~ aot_zscored, data = dfch2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.5774 -0.6843  0.0267  0.6499  3.1740 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  0.00674    0.04251   0.159   0.8741  
## aot_zscored  0.10531    0.04492   2.344   0.0194 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9846 on 535 degrees of freedom
## Multiple R-squared:  0.01017,    Adjusted R-squared:  0.00832 
## F-statistic: 5.497 on 1 and 535 DF,  p-value: 0.01942
look1 <- lm(data = dfch4, formula = arctic20_ch ~ conservatism + rav_scoredz + sc_scoredz + aot_zscored + nfc_zscored)
summary(look1)
## 
## Call:
## lm(formula = arctic20_ch ~ conservatism + rav_scoredz + sc_scoredz + 
##     aot_zscored + nfc_zscored, data = dfch4)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.6902 -0.8441 -0.2235  0.4674  4.1137 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   2.027901   0.130208  15.574  < 2e-16 ***
## conservatism  0.150265   0.032350   4.645  4.3e-06 ***
## rav_scoredz  -0.009395   0.057543  -0.163  0.87037    
## sc_scoredz   -0.057197   0.059740  -0.957  0.33879    
## aot_zscored  -0.212488   0.064364  -3.301  0.00103 ** 
## nfc_zscored   0.106785   0.058832   1.815  0.07008 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.247 on 527 degrees of freedom
## Multiple R-squared:  0.08962,    Adjusted R-squared:  0.08098 
## F-statistic: 10.38 on 5 and 527 DF,  p-value: 1.656e-09
look2 <- lm(data = dfch4, formula = arctic20_ch ~ conservatism * aot_zscored)
summary(look2)
## 
## Call:
## lm(formula = arctic20_ch ~ conservatism * aot_zscored, data = dfch4)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0781 -0.8613 -0.1842  0.4203  4.0796 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               2.06889    0.13043  15.862  < 2e-16 ***
## conservatism              0.15206    0.03205   4.745 2.69e-06 ***
## aot_zscored              -0.50491    0.13199  -3.825 0.000146 ***
## conservatism:aot_zscored  0.08232    0.03099   2.657 0.008130 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.241 on 529 degrees of freedom
## Multiple R-squared:  0.09564,    Adjusted R-squared:  0.09051 
## F-statistic: 18.65 on 3 and 529 DF,  p-value: 1.64e-11
look3 <- lm(data = dfch4, formula = arctic20_ch ~ rav_scoredz + conservatism * aot_zscored)
summary(look3)
## 
## Call:
## lm(formula = arctic20_ch ~ rav_scoredz + conservatism * aot_zscored, 
##     data = dfch4)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0863 -0.8580 -0.1845  0.4181  4.0860 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               2.069100   0.130598  15.843  < 2e-16 ***
## rav_scoredz               0.003683   0.057446   0.064 0.948908    
## conservatism              0.152030   0.032079   4.739 2.76e-06 ***
## aot_zscored              -0.506708   0.135075  -3.751 0.000195 ***
## conservatism:aot_zscored  0.082515   0.031163   2.648 0.008344 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.242 on 528 degrees of freedom
## Multiple R-squared:  0.09564,    Adjusted R-squared:  0.08879 
## F-statistic: 13.96 on 4 and 528 DF,  p-value: 7.813e-11
look4 <- lm(data = dfch4, formula = arctic20_ch ~ vl_zscored + conservatism * aot_zscored)
summary(look4)
## 
## Call:
## lm(formula = arctic20_ch ~ vl_zscored + conservatism * aot_zscored, 
##     data = dfch4)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0848 -0.8767 -0.1494  0.4204  4.1554 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               2.07087    0.13048  15.871  < 2e-16 ***
## vl_zscored               -0.04936    0.05532  -0.892 0.372635    
## conservatism              0.15133    0.03206   4.720 3.03e-06 ***
## aot_zscored              -0.48879    0.13325  -3.668 0.000269 ***
## conservatism:aot_zscored  0.08070    0.03105   2.599 0.009602 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.241 on 528 degrees of freedom
## Multiple R-squared:  0.097,  Adjusted R-squared:  0.09016 
## F-statistic: 14.18 on 4 and 528 DF,  p-value: 5.331e-11
look5 <- lm(data = dfch4, formula = arctic20_ch ~ nfc_zscored 
            + conservatism * aot_zscored) # 3 way int is a no go tho, w none of 
# nfc int sig but me is
summary(look5)
## 
## Call:
## lm(formula = arctic20_ch ~ nfc_zscored + conservatism * aot_zscored, 
##     data = dfch4)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.2216 -0.8271 -0.1812  0.4076  3.9867 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               2.07033    0.13014  15.908  < 2e-16 ***
## nfc_zscored               0.10263    0.05569   1.843  0.06589 .  
## conservatism              0.15256    0.03197   4.771 2.37e-06 ***
## aot_zscored              -0.54801    0.13376  -4.097 4.84e-05 ***
## conservatism:aot_zscored  0.08730    0.03103   2.813  0.00509 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.238 on 528 degrees of freedom
## Multiple R-squared:  0.1014, Adjusted R-squared:  0.09461 
## F-statistic:  14.9 on 4 and 528 DF,  p-value: 1.524e-11
look6 <- lm(data = dfch4, formula = arctic20_ch ~ sc_scoredz 
            + conservatism * aot_zscored) 
summary(look6)
## 
## Call:
## lm(formula = arctic20_ch ~ sc_scoredz + conservatism * aot_zscored, 
##     data = dfch4)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0577 -0.8518 -0.1779  0.3965  4.0862 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               2.07284    0.13090  15.835  < 2e-16 ***
## sc_scoredz               -0.02272    0.05639  -0.403 0.687177    
## conservatism              0.15092    0.03220   4.687 3.53e-06 ***
## aot_zscored              -0.50320    0.13216  -3.807 0.000157 ***
## conservatism:aot_zscored  0.08221    0.03101   2.651 0.008268 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.242 on 528 degrees of freedom
## Multiple R-squared:  0.09591,    Adjusted R-squared:  0.08907 
## F-statistic:    14 on 4 and 528 DF,  p-value: 7.238e-11
look7 <- lm(data = dfch4, formula = arctic20_ch ~ sc_scoredz + nfc_zscored 
            + conservatism * aot_zscored) 
summary(look7)
## 
## Call:
## lm(formula = arctic20_ch ~ sc_scoredz + nfc_zscored + conservatism * 
##     aot_zscored, data = dfch4)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1882 -0.8251 -0.1776  0.4159  4.0062 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               2.08122    0.13056  15.941  < 2e-16 ***
## sc_scoredz               -0.06108    0.05918  -1.032  0.30252    
## nfc_zscored               0.12154    0.05862   2.073  0.03862 *  
## conservatism              0.14958    0.03210   4.660 4.02e-06 ***
## aot_zscored              -0.55137    0.13379  -4.121 4.38e-05 ***
## conservatism:aot_zscored  0.08792    0.03104   2.833  0.00479 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.238 on 527 degrees of freedom
## Multiple R-squared:  0.1032, Adjusted R-squared:  0.09472 
## F-statistic: 12.13 on 5 and 527 DF,  p-value: 3.838e-11
look8 <- lm(data = dfch4, formula = sc_scoredz ~ conservatism + aot_zscored + rav_scoredz)
summary(look8)
## 
## Call:
## lm(formula = sc_scoredz ~ conservatism + aot_zscored + rav_scoredz, 
##     data = dfch4)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.74536 -0.60203  0.01491  0.68688  2.64021 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept)   0.17836    0.09941   1.794   0.0734 .
## conservatism -0.05077    0.02467  -2.058   0.0401 *
## aot_zscored   0.03758    0.04828   0.778   0.4367  
## rav_scoredz   0.06685    0.04398   1.520   0.1291  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9554 on 529 degrees of freedom
## Multiple R-squared:  0.01968,    Adjusted R-squared:  0.01412 
## F-statistic: 3.539 on 3 and 529 DF,  p-value: 0.01461
look9 <- lm(data = dfch4, formula = sc_scoredz ~ conservatism)
summary(look9)
## 
## Call:
## lm(formula = sc_scoredz ~ conservatism, data = dfch4)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.72672 -0.60648  0.01789  0.68890  2.59474 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)   
## (Intercept)   0.21567    0.09431   2.287  0.02260 * 
## conservatism -0.06055    0.02324  -2.606  0.00942 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.957 on 531 degrees of freedom
## Multiple R-squared:  0.01263,    Adjusted R-squared:  0.01077 
## F-statistic:  6.79 on 1 and 531 DF,  p-value: 0.009424
look10 <- lm(data = dfch4, formula = sc_scoredz ~ conservatism + aot_zscored)
summary(look10)
## 
## Call:
## lm(formula = sc_scoredz ~ conservatism + aot_zscored, data = dfch4)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.67504 -0.62625  0.00998  0.69179  2.62588 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept)   0.17668    0.09953   1.775   0.0764 .
## conservatism -0.05028    0.02470  -2.035   0.0423 *
## aot_zscored   0.05693    0.04662   1.221   0.2226  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9565 on 530 degrees of freedom
## Multiple R-squared:  0.0154, Adjusted R-squared:  0.01168 
## F-statistic: 4.144 on 2 and 530 DF,  p-value: 0.01638
look11 <- lm(data = dfch4, formula = sc_scoredz ~ aot_zscored)
summary(look11)
## 
## Call:
## lm(formula = sc_scoredz ~ aot_zscored, data = dfch4)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.57256 -0.66113  0.04375  0.64862  2.62779 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -0.007499   0.041572   -0.18   0.8569  
## aot_zscored  0.089244   0.043968    2.03   0.0429 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9594 on 531 degrees of freedom
## Multiple R-squared:  0.007699,   Adjusted R-squared:  0.00583 
## F-statistic:  4.12 on 1 and 531 DF,  p-value: 0.04288
look12 <- lm(data = dfch4, formula = sc_scoredz ~ vl_zscored + rav_scoredz + nfc_zscored)
summary(look12)
## 
## Call:
## lm(formula = sc_scoredz ~ vl_zscored + rav_scoredz + nfc_zscored, 
##     data = dfch4)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.52630 -0.61392  0.00016  0.62678  2.44010 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.006488   0.039485  -0.164    0.870    
## vl_zscored   0.009010   0.041226   0.219    0.827    
## rav_scoredz  0.057045   0.041761   1.366    0.173    
## nfc_zscored  0.306591   0.040064   7.652  9.4e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9115 on 529 degrees of freedom
## Multiple R-squared:  0.1076, Adjusted R-squared:  0.1026 
## F-statistic: 21.26 on 3 and 529 DF,  p-value: 5.106e-13
look13 <- lm(data = dfch4, formula = sc_scoredz ~ rav_scoredz +
               conservatism + nfc_zscored + aot_zscored + vl_zscored)
summary(look13)
## 
## Call:
## lm(formula = sc_scoredz ~ rav_scoredz + conservatism + nfc_zscored + 
##     aot_zscored + vl_zscored, data = dfch4)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.60634 -0.63084  0.00648  0.63420  2.43513 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   0.173174   0.094677   1.829   0.0680 .  
## rav_scoredz   0.059341   0.042827   1.386   0.1665    
## conservatism -0.049029   0.023501  -2.086   0.0374 *  
## nfc_zscored   0.306473   0.040843   7.504 2.66e-13 ***
## aot_zscored  -0.034059   0.047193  -0.722   0.4708    
## vl_zscored    0.006856   0.041478   0.165   0.8688    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9095 on 527 degrees of freedom
## Multiple R-squared:  0.1149, Adjusted R-squared:  0.1065 
## F-statistic: 13.69 on 5 and 527 DF,  p-value: 1.408e-12

plots

dfch2 %>% 
  ggplot(aes(x = aot_zscored, y = sc_scoredz, fill = as.factor(con))) +
  geom_smooth()

dfch2 %>% 
  ggplot(aes(x = aot_zscored, y = sc_scoredz)) +
  geom_smooth()

dfch2 %>% 
  ggplot(aes(x = con, y = sc_scoredz)) +
  geom_smooth()

turtles

turtle1 <- lm(data = dfch3, formula = arctic10_ch ~ rav_scoredz + con + sc_scoredz)
summary(turtle1)
## 
## Call:
## lm(formula = arctic10_ch ~ rav_scoredz + con + sc_scoredz, data = dfch3)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.35406 -0.35235  0.04949  0.13091  3.08368 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.110466   0.039481  78.784  < 2e-16 ***
## rav_scoredz -0.018698   0.041277  -0.453    0.651    
## con          0.211089   0.041662   5.067 5.65e-07 ***
## sc_scoredz  -0.002553   0.040024  -0.064    0.949    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8945 on 516 degrees of freedom
## Multiple R-squared:  0.0486, Adjusted R-squared:  0.04307 
## F-statistic: 8.786 on 3 and 516 DF,  p-value: 1.085e-05
turtle2 <- lm(data = dfch3, formula = arctic20_ch ~ rav_scoredz + con + sc_scoredz)
summary(turtle2)
## 
## Call:
## lm(formula = arctic20_ch ~ rav_scoredz + con + sc_scoredz, data = dfch3)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.9949 -0.9238 -0.2303  0.4563  4.7209 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.58323    0.05454  47.365  < 2e-16 ***
## rav_scoredz -0.01773    0.05702  -0.311    0.756    
## con          0.34122    0.05755   5.929 5.58e-09 ***
## sc_scoredz  -0.01326    0.05529  -0.240    0.811    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.236 on 516 degrees of freedom
## Multiple R-squared:  0.06525,    Adjusted R-squared:  0.05981 
## F-statistic: 12.01 on 3 and 516 DF,  p-value: 1.311e-07

plots

dfch3 %>% 
  ggplot(aes(x = aot_zscored, y = arctic20_ch, fill = as.factor(con))) +
  geom_smooth()

dfch2 %>% 
  ggplot(aes(x = con, y = arctic20_ch)) +
  geom_bar(fun = "mean", stat = "summary")

dfch2 %>% 
  filter(con == -1) %>% 
  select(aot_zscored) %>% 
  hist()

dfch2 %>% 
  filter(con == 1) %>% 
  select(aot_zscored) %>% 
  hist()

dfch2 %>% 
  ggplot(aes(x = conservatism, y = aot_zscored)) +
  geom_bar(fun = "mean", stat = "summary")

dfch2 %>% 
  ggplot(aes(x = conservatism, y = sc_scoredz)) +
  geom_bar(fun = "mean", stat = "summary")

dfch2 %>% 
  ggplot(aes(x = conservatism)) +
  geom_bar()

dfch2 %>% 
  ggplot(aes(x = sc_scoredz)) +
  geom_bar()

dfch2 %>% 
  ggplot(aes(x = aot_zscored)) +
  geom_bar()

dfch2 %>% 
  ggplot(aes(x = nfc_zscored)) +
  geom_bar()

dfch2 %>% 
  ggplot(aes(x = vl_zscored)) +
  geom_bar()

facet plots

# aot
descplot_aot <- dfch4 %>% 
  # select(conservatism, conservatism_f, aot_zscored, nfc_zscored, rav_scoredz,
  #        sc_scoredz, vl_zscored, arctic20_ch, temp20_ch, arctic10_ch, 
  #        temp10_ch) %>% 
  mutate(conservatism = as.factor(conservatism),
         aot_zscored = as.numeric(aot_zscored)) %>% 
  select(aot_zscored, conservatism)%>% 
  group_by(conservatism) %>%
  dplyr::summarise(n = n(),
            Mean = mean(aot_zscored, na.rm=T),
            sd = sd(aot_zscored, na.rm=T),
            se = sd/(sqrt(n)),
            var = "5. Actively Open-Minded Thinking",
            min = min(aot_zscored),
            max = max(aot_zscored))

descplot_aot  %>% 
  ggplot(aes(x = conservatism, y = Mean)) +
  geom_bar(stat = "identity") +
  geom_errorbar(aes(ymin=Mean-se, ymax=Mean+se))

# sc
descplot_sc <- dfch4 %>% 
  # select(conservatism, conservatism_f, aot_zscored, nfc_zscored, rav_scoredz,
  #        sc_scoredz, vl_zscored, arctic20_ch, temp20_ch, arctic10_ch, 
  #        temp10_ch) %>% 
  mutate(conservatism = as.factor(conservatism),
         sc_scoredz = as.numeric(sc_scoredz)) %>% 
  select(sc_scoredz, conservatism)%>% 
  group_by(conservatism) %>%
  dplyr::summarise(n = n(),
            Mean = mean(sc_scoredz, na.rm=T),
            sd = sd(sc_scoredz, na.rm=T),
            se = sd/(sqrt(n)),
            var = "1. Science Curiosity",
            min = min(sc_scoredz),
            max = max(sc_scoredz))

# nfc
descplot_nfc <- dfch4 %>% 
  # select(conservatism, conservatism_f, aot_zscored, nfc_zscored, rav_scoredz,
  #        sc_scoredz, vl_zscored, arctic20_ch, temp20_ch, arctic10_ch, 
  #        temp10_ch) %>% 
  mutate(conservatism = as.factor(conservatism),
         nfc_zscored = as.numeric(nfc_zscored)) %>% 
  select(nfc_zscored, conservatism)%>% 
  group_by(conservatism) %>%
  dplyr::summarise(n = n(),
            Mean = mean(nfc_zscored, na.rm=T),
            sd = sd(nfc_zscored, na.rm=T),
            se = sd/(sqrt(n)),
            var = "4. Need For Cognition",
            min = min(nfc_zscored),
            max = max(nfc_zscored))

descplt_facet <- rbind(descplot_aot, descplot_sc, descplot_nfc)
descplt_facet  %>% 
  ggplot(aes(x = conservatism, y = Mean)) +
  geom_bar(stat = "identity", fill = "darkseagreen") +
  geom_errorbar(aes(ymin=Mean-se, ymax=Mean+se), width = .2) +
  facet_wrap(~var) +
  labs(x = "Conservatism", y = "Mean (z-scored)") +
  theme_bw()

descplot_rav <- dfch4 %>% 
  # select(conservatism, conservatism_f, aot_zscored, nfc_zscored, rav_scoredz,
  #        sc_scoredz, vl_zscored, arctic20_ch, temp20_ch, arctic10_ch, 
  #        temp10_ch) %>% 
  mutate(conservatism = as.factor(conservatism),
         rav_scoredz = as.numeric(rav_scoredz)) %>% 
  select(rav_scoredz, conservatism)%>% 
  group_by(conservatism) %>%
  dplyr::summarise(n = n(),
            Mean = mean(rav_scoredz, na.rm=T),
            sd = sd(rav_scoredz, na.rm=T),
            se = sd/(sqrt(n)),
            var = "2. Raven's Progressive Matrices",
            min = min(rav_scoredz),
            max = max(rav_scoredz))

descplot_vl <- dfch4 %>% 
  # select(conservatism, conservatism_f, aot_zscored, nfc_zscored, rav_scoredz,
  #        sc_scoredz, vl_zscored, arctic20_ch, temp20_ch, arctic10_ch, 
  #        temp10_ch) %>% 
  mutate(conservatism = as.factor(conservatism),
         vl_zscored = as.numeric(vl_zscored)) %>% 
  select(vl_zscored, conservatism)%>% 
  group_by(conservatism) %>%
  dplyr::summarise(n = n(),
            Mean = mean(vl_zscored, na.rm=T),
            sd = sd(vl_zscored, na.rm=T),
            se = sd/(sqrt(n)),
            var = "3. Verbal Logic",
            min = min(vl_zscored),
            max = max(vl_zscored))

descplotca <- rbind(descplot_rav, descplot_sc, descplot_vl)
descplotca  %>% 
  ggplot(aes(x = conservatism, y = Mean)) +
  geom_bar(stat = "identity", fill = "darkseagreen") +
  geom_errorbar(aes(ymin=Mean-se, ymax=Mean+se), width = .2) +
  facet_wrap(~var) +
  labs(x = "Conservatism", y = "Mean (z-scored)") +
  theme_bw()

descplotall <- rbind(descplotca, descplot_aot, descplot_nfc)
descplotall  %>% 
  ggplot(aes(x = conservatism, y = Mean)) +
  geom_bar(stat = "identity", fill = "darkseagreen") +
  geom_errorbar(aes(ymin=Mean-se, ymax=Mean+se), width = .2) +
  facet_wrap(~var, ncol=3) +
  labs(x = "Conservatism", y = "Mean (z-scored)") +
  theme_bw()

desc5 <- descplotall  %>% 
  ggplot(aes(x = conservatism, y = Mean)) +
  geom_bar(stat = "identity", fill = "darkseagreen") +
  geom_errorbar(aes(ymin=Mean-se, ymax=Mean+se), width = .2) +
  facet_wrap(~var, ncol=3) +
  labs(x = "Conservatism", y = "Mean (z-scored)") +
  theme_bw()

plot by sci cur

sep plots

# dfch2 %>% 
#   select(contains("20_ch"), con, rav_scoredz, sc_scoredz,
#          aot_zscored, nfc_zscored, vl_zscored) %>% 
#   cor() %>% 
#   kable()